Fix: HR and Payroll Dashboard (#22771)
* Fix: HR and Payroll Dashboard
* fix: requested changes
diff --git a/erpnext/hr/dashboard_chart/attendance_count/attendance_count.json b/erpnext/hr/dashboard_chart/attendance_count/attendance_count.json
new file mode 100644
index 0000000..4666aec
--- /dev/null
+++ b/erpnext/hr/dashboard_chart/attendance_count/attendance_count.json
@@ -0,0 +1,27 @@
+{
+ "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": "{}",
+ "group_by_type": "Count",
+ "idx": 0,
+ "is_public": 1,
+ "is_standard": 1,
+ "modified": "2020-07-22 14:32:40.334424",
+ "modified_by": "Administrator",
+ "module": "HR",
+ "name": "Attendance Count",
+ "number_of_groups": 0,
+ "owner": "Administrator",
+ "report_name": "Monthly Attendance Sheet",
+ "time_interval": "Yearly",
+ "timeseries": 0,
+ "timespan": "Last Year",
+ "type": "Line",
+ "use_report_chart": 1,
+ "y_axis": []
+}
\ No newline at end of file
diff --git a/erpnext/hr/dashboard_chart/department_wise_employee_count/department_wise_employee_count.json b/erpnext/hr/dashboard_chart/department_wise_employee_count/department_wise_employee_count.json
new file mode 100644
index 0000000..c21bfb9
--- /dev/null
+++ b/erpnext/hr/dashboard_chart/department_wise_employee_count/department_wise_employee_count.json
@@ -0,0 +1,29 @@
+{
+ "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\",false]]",
+ "group_by_based_on": "department",
+ "group_by_type": "Count",
+ "idx": 0,
+ "is_public": 1,
+ "is_standard": 1,
+ "last_synced_on": "2020-07-22 14:27:40.574194",
+ "modified": "2020-07-22 14:33:38.036794",
+ "modified_by": "Administrator",
+ "module": "HR",
+ "name": "Department Wise Employee Count",
+ "number_of_groups": 0,
+ "owner": "Administrator",
+ "time_interval": "Yearly",
+ "timeseries": 0,
+ "timespan": "Last Year",
+ "type": "Donut",
+ "use_report_chart": 0,
+ "y_axis": []
+}
\ No newline at end of file
diff --git a/erpnext/hr/dashboard_chart/department_wise_openings/department_wise_openings.json b/erpnext/hr/dashboard_chart/department_wise_openings/department_wise_openings.json
new file mode 100644
index 0000000..b1953d4
--- /dev/null
+++ b/erpnext/hr/dashboard_chart/department_wise_openings/department_wise_openings.json
@@ -0,0 +1,29 @@
+{
+ "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",
+ "filters_json": "[]",
+ "group_by_based_on": "department",
+ "group_by_type": "Sum",
+ "idx": 0,
+ "is_public": 1,
+ "is_standard": 1,
+ "last_synced_on": "2020-07-22 14:33:44.834801",
+ "modified": "2020-07-22 14:34:45.273591",
+ "modified_by": "Administrator",
+ "module": "HR",
+ "name": "Department Wise Openings",
+ "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/erpnext/hr/dashboard_chart/designation_wise_employee_count/designation_wise_employee_count.json b/erpnext/hr/dashboard_chart/designation_wise_employee_count/designation_wise_employee_count.json
new file mode 100644
index 0000000..b10235c
--- /dev/null
+++ b/erpnext/hr/dashboard_chart/designation_wise_employee_count/designation_wise_employee_count.json
@@ -0,0 +1,29 @@
+{
+ "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\",false]]",
+ "group_by_based_on": "designation",
+ "group_by_type": "Count",
+ "idx": 0,
+ "is_public": 1,
+ "is_standard": 1,
+ "last_synced_on": "2020-07-22 14:27:40.602783",
+ "modified": "2020-07-22 14:31:49.665555",
+ "modified_by": "Administrator",
+ "module": "HR",
+ "name": "Designation Wise Employee Count",
+ "number_of_groups": 0,
+ "owner": "Administrator",
+ "time_interval": "Yearly",
+ "timeseries": 0,
+ "timespan": "Last Year",
+ "type": "Donut",
+ "use_report_chart": 0,
+ "y_axis": []
+}
\ No newline at end of file
diff --git a/erpnext/hr/dashboard_chart/designation_wise_openings/designation_wise_openings.json b/erpnext/hr/dashboard_chart/designation_wise_openings/designation_wise_openings.json
new file mode 100644
index 0000000..49ea98a
--- /dev/null
+++ b/erpnext/hr/dashboard_chart/designation_wise_openings/designation_wise_openings.json
@@ -0,0 +1,30 @@
+{
+ "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": "",
+ "filters_json": "[]",
+ "group_by_based_on": "designation",
+ "group_by_type": "Sum",
+ "idx": 0,
+ "is_public": 1,
+ "is_standard": 1,
+ "last_synced_on": "2020-07-22 14:33:44.806626",
+ "modified": "2020-07-22 14:34:32.711881",
+ "modified_by": "Administrator",
+ "module": "HR",
+ "name": "Designation Wise Openings",
+ "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/erpnext/hr/dashboard_chart/gender_diversity_ratio/gender_diversity_ratio.json b/erpnext/hr/dashboard_chart/gender_diversity_ratio/gender_diversity_ratio.json
new file mode 100644
index 0000000..48578c9
--- /dev/null
+++ b/erpnext/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\",false]]",
+ "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": "2020-07-22 14:32:50.962459",
+ "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/erpnext/hr/dashboard_chart/job_application_status/job_application_status.json b/erpnext/hr/dashboard_chart/job_application_status/job_application_status.json
new file mode 100644
index 0000000..bfcfa96
--- /dev/null
+++ b/erpnext/hr/dashboard_chart/job_application_status/job_application_status.json
@@ -0,0 +1,29 @@
+{
+ "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": "[[\"Job Applicant\",\"creation\",\"Previous\",\"1 month\"]]",
+ "group_by_based_on": "status",
+ "group_by_type": "Count",
+ "idx": 0,
+ "is_public": 1,
+ "is_standard": 1,
+ "last_synced_on": "2020-07-22 14:27:40.118498",
+ "modified": "2020-07-22 14:33:00.404144",
+ "modified_by": "Administrator",
+ "module": "HR",
+ "name": "Job Application Status",
+ "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/erpnext/hr/dashboard_fixtures.py b/erpnext/hr/dashboard_fixtures.py
deleted file mode 100644
index 1e9b4f3..0000000
--- a/erpnext/hr/dashboard_fixtures.py
+++ /dev/null
@@ -1,190 +0,0 @@
-# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-import frappe
-import erpnext
-import json
-from frappe import _
-
-def get_data():
- return frappe._dict({
- "dashboards": get_dashboards(),
- "charts": get_charts(),
- "number_cards": get_number_cards(),
- })
-
-def get_dashboards():
- dashboards = []
- dashboards.append(get_human_resource_dashboard())
- return dashboards
-
-def get_human_resource_dashboard():
- return {
- "name": "Human Resource",
- "dashboard_name": "Human Resource",
- "is_default": 1,
- "charts": [
- { "chart": "Attendance Count", "width": "Full"},
- { "chart": "Gender Diversity Ratio", "width": "Half"},
- { "chart": "Job Application Status", "width": "Half"},
- { "chart": 'Designation Wise Employee Count', "width": "Half"},
- { "chart": 'Department Wise Employee Count', "width": "Half"},
- { "chart": 'Designation Wise Openings', "width": "Half"},
- { "chart": 'Department Wise Openings', "width": "Half"}
- ],
- "cards": [
- {"card": "Total Employees"},
- {"card": "New Joinees (Last year)"},
- {'card': "Employees Left (Last year)"},
- {'card': "Total Applicants (Last month)"},
- ]
- }
-
-def get_recruitment_dashboard():
- pass
-
-
-def get_charts():
- company = erpnext.get_default_company()
- date = frappe.utils.get_datetime()
-
- month_map = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov","Dec"]
-
-
- if not company:
- company = frappe.db.get_value("Company", {"is_group": 0}, "name")
-
- dashboard_charts = [
- get_dashboards_chart_doc('Gender Diversity Ratio', "Group By", "Pie",
- document_type = "Employee", group_by_type="Count", group_by_based_on="gender",
- filters_json = json.dumps([["Employee", "status", "=", "Active"]]))
- ]
-
- dashboard_charts.append(
- get_dashboards_chart_doc('Job Application Status', "Group By", "Pie",
- document_type = "Job Applicant", group_by_type="Count", group_by_based_on="status",
- filters_json = json.dumps([["Job Applicant", "creation", "Previous", "1 month"]]))
- )
-
- custom_options = '''{
- "type": "line",
- "axisOptions": {
- "shortenYAxisNumbers": 1
- },
- "tooltipOptions": {}
- }'''
-
- filters_json = json.dumps({
- "month": month_map[date.month - 1],
- "year": str(date.year),
- "company":company
- })
-
- dashboard_charts.append(
- get_dashboards_chart_doc('Attendance Count', "Report", "Line",
- report_name = "Monthly Attendance Sheet", is_custom =1, group_by_type="Count",
- filters_json = filters_json, custom_options=custom_options)
- )
-
- dashboard_charts.append(
- get_dashboards_chart_doc('Department Wise Employee Count', "Group By", "Donut",
- document_type = "Employee", group_by_type="Count", group_by_based_on="department",
- filters_json = json.dumps([["Employee", "status", "=", "Active"]]))
- )
-
- dashboard_charts.append(
- get_dashboards_chart_doc('Designation Wise Employee Count', "Group By", "Donut",
- document_type = "Employee", group_by_type="Count", group_by_based_on="designation",
- filters_json = json.dumps([["Employee", "status", "=", "Active"]]))
- )
-
- dashboard_charts.append(
- get_dashboards_chart_doc('Designation Wise Openings', "Group By", "Bar",
- document_type = "Job Opening", group_by_type="Sum", group_by_based_on="designation",
- time_interval = "Monthly", aggregate_function_based_on = "planned_vacancies")
- )
- dashboard_charts.append(
- get_dashboards_chart_doc('Department Wise Openings', "Group By", "Bar",
- document_type = "Job Opening", group_by_type="Sum", group_by_based_on="department",
- time_interval = "Monthly", aggregate_function_based_on = "planned_vacancies")
- )
- return dashboard_charts
-
-
-def get_number_cards():
- number_cards = []
-
- number_cards = [
- get_number_cards_doc("Employee", "Total Employees", filters_json = json.dumps([
- ["Employee","status","=","Active"]
- ])
- )
- ]
-
- number_cards.append(
- get_number_cards_doc("Employee", "New Joinees (Last year)", filters_json = json.dumps([
- ["Employee","date_of_joining","Timespan","last year"],
- ["Employee","status","=","Active"]
- ])
- )
- )
-
- number_cards.append(
- get_number_cards_doc("Employee", "Employees Left (Last year)", filters_json = json.dumps([
- ["Employee", "relieving_date", "Timespan", "last year"],
- ["Employee", "status", "=", "Left"]
- ])
- )
- )
-
- number_cards.append(
- get_number_cards_doc("Job Applicant", "Total Applicants (Last month)", filters_json = json.dumps([
- ["Job Applicant", "creation", "Timespan", "last month"]
- ])
- )
- )
-
- return number_cards
-
-
-def get_number_cards_doc(document_type, label, **args):
- args = frappe._dict(args)
-
- return {
- "doctype": "Number Card",
- "document_type": document_type,
- "function": args.func or "Count",
- "is_public": args.is_public or 1,
- "label": _(label),
- "name": args.name or label,
- "show_percentage_stats": args.show_percentage_stats or 1,
- "stats_time_interval": args.stats_time_interval or 'Monthly',
- "filters_json": args.filters_json or '[]',
- "aggregate_function_based_on": args.aggregate_function_based_on or None
- }
-
-def get_dashboards_chart_doc(name, chart_type, graph_type, **args):
- args = frappe._dict(args)
-
- return {
- "name": name,
- "chart_name": _(args.chart_name or name),
- "chart_type": chart_type,
- "document_type": args.document_type or None,
- "report_name": args.report_name or None,
- "is_custom": args.is_custom or 0,
- "group_by_type": args.group_by_type or None,
- "group_by_based_on": args.group_by_based_on or None,
- "based_on": args.based_on or None,
- "value_based_on": args.value_based_on or None,
- "number_of_groups": args.number_of_groups or 0,
- "is_public": args.is_public or 1,
- "timespan": args.timespan or "Last Year",
- "time_interval": args.time_interval or "Yearly",
- "timeseries": args.timeseries or 0,
- "filters_json": args.filters_json or '[]',
- "type": graph_type,
- "custom_options": args.custom_options or '',
- "doctype": "Dashboard Chart",
- "aggregate_function_based_on": args.aggregate_function_based_on or None
- }
\ No newline at end of file
diff --git a/erpnext/hr/hr_dashboard/human_resource/human_resource.json b/erpnext/hr/hr_dashboard/human_resource/human_resource.json
new file mode 100644
index 0000000..f74d9a3
--- /dev/null
+++ b/erpnext/hr/hr_dashboard/human_resource/human_resource.json
@@ -0,0 +1,58 @@
+{
+ "cards": [
+ {
+ "card": "Total Employees"
+ },
+ {
+ "card": "New Joinees (Last year)"
+ },
+ {
+ "card": "Employees Left (Last year)"
+ },
+ {
+ "card": "Total Applicants (Last month)"
+ }
+ ],
+ "charts": [
+ {
+ "chart": "Attendance Count",
+ "width": "Full"
+ },
+ {
+ "chart": "Gender Diversity Ratio",
+ "width": "Half"
+ },
+ {
+ "chart": "Job Application Status",
+ "width": "Half"
+ },
+ {
+ "chart": "Designation Wise Employee Count",
+ "width": "Half"
+ },
+ {
+ "chart": "Department Wise Employee Count",
+ "width": "Half"
+ },
+ {
+ "chart": "Designation Wise Openings",
+ "width": "Half"
+ },
+ {
+ "chart": "Department Wise Openings",
+ "width": "Half"
+ }
+ ],
+ "creation": "2020-07-22 11:56:33.015888",
+ "dashboard_name": "Human Resource",
+ "docstatus": 0,
+ "doctype": "Dashboard",
+ "idx": 0,
+ "is_default": 0,
+ "is_standard": 1,
+ "modified": "2020-07-22 14:42:12.789249",
+ "modified_by": "Administrator",
+ "module": "HR",
+ "name": "Human Resource",
+ "owner": "Administrator"
+}
\ No newline at end of file
diff --git "a/erpnext/hr/number_card/employees_left_\050last_year\051/employees_left_\050last_year\051.json" "b/erpnext/hr/number_card/employees_left_\050last_year\051/employees_left_\050last_year\051.json"
new file mode 100644
index 0000000..6a91912
--- /dev/null
+++ "b/erpnext/hr/number_card/employees_left_\050last_year\051/employees_left_\050last_year\051.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\",\"last year\",false]]",
+ "function": "Count",
+ "idx": 0,
+ "is_public": 1,
+ "is_standard": 1,
+ "label": "Employees Left (Last year)",
+ "modified": "2020-07-23 12:03:26.747447",
+ "modified_by": "Administrator",
+ "module": "HR",
+ "name": "Employees Left (Last year)",
+ "owner": "Administrator",
+ "show_percentage_stats": 1,
+ "stats_time_interval": "Monthly",
+ "type": "Document Type"
+}
\ No newline at end of file
diff --git "a/erpnext/hr/number_card/new_joinees_\050last_year\051/new_joinees_\050last_year\051.json" "b/erpnext/hr/number_card/new_joinees_\050last_year\051/new_joinees_\050last_year\051.json"
new file mode 100644
index 0000000..8f5ad9c
--- /dev/null
+++ "b/erpnext/hr/number_card/new_joinees_\050last_year\051/new_joinees_\050last_year\051.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\",\"last year\",false],[\"Employee\",\"status\",\"=\",\"Active\",false]]",
+ "function": "Count",
+ "idx": 0,
+ "is_public": 1,
+ "is_standard": 1,
+ "label": "New Joinees (Last year)",
+ "modified": "2020-07-22 14:32:09.352301",
+ "modified_by": "Administrator",
+ "module": "HR",
+ "name": "New Joinees (Last year)",
+ "owner": "Administrator",
+ "show_percentage_stats": 1,
+ "stats_time_interval": "Monthly",
+ "type": "Document Type"
+}
\ No newline at end of file
diff --git "a/erpnext/hr/number_card/total_applicants_\050last_month\051/total_applicants_\050last_month\051.json" "b/erpnext/hr/number_card/total_applicants_\050last_month\051/total_applicants_\050last_month\051.json"
new file mode 100644
index 0000000..1af42ca
--- /dev/null
+++ "b/erpnext/hr/number_card/total_applicants_\050last_month\051/total_applicants_\050last_month\051.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\",\"last month\"]]",
+ "function": "Count",
+ "idx": 0,
+ "is_public": 1,
+ "is_standard": 1,
+ "label": "Total Applicants (Last month)",
+ "modified": "2020-07-22 14:32:27.656855",
+ "modified_by": "Administrator",
+ "module": "HR",
+ "name": "Total Applicants (Last month)",
+ "owner": "Administrator",
+ "show_percentage_stats": 1,
+ "stats_time_interval": "Monthly",
+ "type": "Document Type"
+}
\ No newline at end of file
diff --git a/erpnext/hr/number_card/total_employees/total_employees.json b/erpnext/hr/number_card/total_employees/total_employees.json
new file mode 100644
index 0000000..932e255
--- /dev/null
+++ b/erpnext/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\",false]]",
+ "function": "Count",
+ "idx": 0,
+ "is_public": 1,
+ "is_standard": 1,
+ "label": "Total Employees",
+ "modified": "2020-07-22 14:31:59.118650",
+ "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/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js b/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js
index bd4ed3c..4b9b928 100644
--- a/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js
+++ b/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js
@@ -5,12 +5,25 @@
frappe.query_reports["Monthly Attendance Sheet"] = {
"filters": [
{
- "fieldname":"month",
+ "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()],
+ "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",
diff --git a/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py b/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py
index 47daab1..4608212 100644
--- a/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py
+++ b/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py
@@ -248,10 +248,7 @@
if not (filters.get("month") and filters.get("year")):
msgprint(_("Please select month and year"), raise_exception=1)
- filters["month"] = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov",
- "Dec"].index(filters.month) + 1
-
- filters["total_days_in_month"] = monthrange(cint(filters.year), filters.month)[1]
+ filters["total_days_in_month"] = monthrange(cint(filters.year), cint(filters.month))[1]
conditions = " and month(attendance_date) = %(month)s and year(attendance_date) = %(year)s"
diff --git "a/erpnext/payroll/dashboard_chart/department_wise_salary\050last_month\051/department_wise_salary\050last_month\051.json" "b/erpnext/payroll/dashboard_chart/department_wise_salary\050last_month\051/department_wise_salary\050last_month\051.json"
new file mode 100644
index 0000000..61ae86f
--- /dev/null
+++ "b/erpnext/payroll/dashboard_chart/department_wise_salary\050last_month\051/department_wise_salary\050last_month\051.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\",false],[\"Salary Slip\",\"start_date\",\"Timespan\",\"last month\",false]]",
+ "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": "2020-07-22 12:48:12.080992",
+ "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/erpnext/payroll/dashboard_chart/designation_wise_salary\050last_month\051/designation_wise_salary\050last_month\051.json" "b/erpnext/payroll/dashboard_chart/designation_wise_salary\050last_month\051/designation_wise_salary\050last_month\051.json"
new file mode 100644
index 0000000..b3c4e59
--- /dev/null
+++ "b/erpnext/payroll/dashboard_chart/designation_wise_salary\050last_month\051/designation_wise_salary\050last_month\051.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\",false],[\"Salary Slip\",\"start_date\",\"Timespan\",\"last month\",false]]",
+ "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": "2020-07-22 12:39:07.923382",
+ "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/erpnext/payroll/dashboard_chart/outgoing_salary/outgoing_salary.json b/erpnext/payroll/dashboard_chart/outgoing_salary/outgoing_salary.json
new file mode 100644
index 0000000..c77c8a5
--- /dev/null
+++ b/erpnext/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\",false]]",
+ "idx": 0,
+ "is_public": 1,
+ "is_standard": 1,
+ "last_synced_on": "2020-07-22 12:11:27.481231",
+ "modified": "2020-07-22 12:20:05.777715",
+ "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/erpnext/payroll/dashboard_fixtures.py b/erpnext/payroll/dashboard_fixtures.py
deleted file mode 100644
index ae7a9ff..0000000
--- a/erpnext/payroll/dashboard_fixtures.py
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-import frappe
-import erpnext
-from erpnext.hr.dashboard_fixtures import get_dashboards_chart_doc, get_number_cards_doc
-import json
-from frappe import _
-
-def get_data():
- return frappe._dict({
- "dashboards": get_dashboards(),
- "charts": get_charts(),
- "number_cards": get_number_cards(),
- })
-
-def get_dashboards():
- dashboards = []
- dashboards.append(get_payroll_dashboard())
- return dashboards
-
-def get_payroll_dashboard():
- return {
- "name": "Payroll",
- "dashboard_name": "Payroll",
- "is_default": 1,
- "charts": [
- { "chart": "Outgoing Salary", "width": "Full"},
- { "chart": "Designation Wise Salary(Last Month)", "width": "Half"},
- { "chart": "Department Wise Salary(Last Month)", "width": "Half"},
- ],
- "cards": [
- {"card": "Total Declaration Submitted"},
- {"card": "Total Salary Structure"},
- {"card": "Total Incentive Given(Last month)"},
- {"card": "Total Outgoing Salary(Last month)"},
- ]
- }
-
-def get_charts():
- dashboard_charts= [
- get_dashboards_chart_doc('Outgoing Salary', "Sum", "Line",
- document_type = "Salary Slip", based_on="end_date",
- value_based_on = "rounded_total", time_interval = "Monthly", timeseries = 1,
- filters_json = json.dumps([["Salary Slip", "docstatus", "=", 1]]))
- ]
-
- dashboard_charts.append(
- get_dashboards_chart_doc('Department Wise Salary(Last Month)', "Group By", "Bar",
- document_type = "Salary Slip", group_by_type="Sum", group_by_based_on="department",
- time_interval = "Monthly", aggregate_function_based_on = "rounded_total",
- filters_json = json.dumps([
- ["Salary Slip", "docstatus", "=", 1],
- ["Salary Slip", "start_date", "Previous","1 month"]
- ])
- )
- )
-
- dashboard_charts.append(
- get_dashboards_chart_doc('Designation Wise Salary(Last Month)', "Group By", "Bar",
- document_type = "Salary Slip", group_by_type="Sum", group_by_based_on="designation",
- time_interval = "Monthly", aggregate_function_based_on = "rounded_total",
- filters_json = json.dumps([
- ["Salary Slip", "docstatus", "=", 1],
- ["Salary Slip", "start_date", "Previous","1 month"]
- ])
- )
- )
-
- return dashboard_charts
-
-def get_number_cards():
- number_cards = [get_number_cards_doc("Employee Tax Exemption Declaration", "Total Declaration Submitted", filters_json = json.dumps([
- ["Employee Tax Exemption Declaration", "docstatus", "=","1"],
- ["Employee Tax Exemption Declaration","creation","Previous","1 year"]
- ])
- )]
-
- number_cards.append(get_number_cards_doc("Employee Incentive", "Total Incentive Given(Last month)",
- time_interval = "Monthly", func = "Sum", aggregate_function_based_on = "incentive_amount",
- filters_json = json.dumps([
- ["Employee Incentive", "docstatus", "=", 1],
- ["Employee Incentive","payroll_date","Previous","1 year"]
- ]))
- )
-
- number_cards.append(get_number_cards_doc("Salary Slip", "Total Outgoing Salary(Last month)",
- time_interval = "Monthly", time_span= "Monthly", func = "Sum", aggregate_function_based_on = "rounded_total",
- filters_json = json.dumps([
- ["Salary Slip", "docstatus", "=", 1],
- ["Salary Slip", "start_date","Previous","1 month"]
- ]))
- )
- number_cards.append(get_number_cards_doc("Salary Structure", "Total Salary Structure",
- filters_json = json.dumps([
- ["Salary Structure", "docstatus", "=", 1]
- ]))
- )
-
- return number_cards
\ No newline at end of file
diff --git a/erpnext/payroll/doctype/salary_slip/salary_slip.json b/erpnext/payroll/doctype/salary_slip/salary_slip.json
index 88931c2..27a974a 100644
--- a/erpnext/payroll/doctype/salary_slip/salary_slip.json
+++ b/erpnext/payroll/doctype/salary_slip/salary_slip.json
@@ -74,9 +74,7 @@
"fieldtype": "Date",
"in_list_view": 1,
"label": "Posting Date",
- "reqd": 1,
- "show_days": 1,
- "show_seconds": 1
+ "reqd": 1
},
{
"fieldname": "employee",
@@ -89,9 +87,7 @@
"oldfieldtype": "Link",
"options": "Employee",
"reqd": 1,
- "search_index": 1,
- "show_days": 1,
- "show_seconds": 1
+ "search_index": 1
},
{
"fetch_from": "employee.employee_name",
@@ -102,9 +98,7 @@
"label": "Employee Name",
"oldfieldname": "employee_name",
"oldfieldtype": "Data",
- "reqd": 1,
- "show_days": 1,
- "show_seconds": 1
+ "reqd": 1
},
{
"fetch_from": "employee.department",
@@ -115,20 +109,18 @@
"oldfieldname": "department",
"oldfieldtype": "Link",
"options": "Department",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"depends_on": "eval:doc.designation",
"fetch_from": "employee.designation",
"fieldname": "designation",
- "fieldtype": "Read Only",
+ "fieldtype": "Link",
"label": "Designation",
"oldfieldname": "designation",
"oldfieldtype": "Link",
- "show_days": 1,
- "show_seconds": 1
+ "options": "Designation",
+ "read_only": 1
},
{
"fetch_from": "employee.branch",
@@ -139,16 +131,12 @@
"oldfieldname": "branch",
"oldfieldtype": "Link",
"options": "Branch",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fieldname": "column_break1",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
- "show_days": 1,
- "show_seconds": 1,
"width": "50%"
},
{
@@ -156,27 +144,21 @@
"fieldtype": "Select",
"label": "Status",
"options": "Draft\nSubmitted\nCancelled",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fieldname": "journal_entry",
"fieldtype": "Link",
"label": "Journal Entry",
"options": "Journal Entry",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fieldname": "payroll_entry",
"fieldtype": "Link",
"label": "Payroll Entry",
"options": "Payroll Entry",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fieldname": "company",
@@ -186,9 +168,7 @@
"label": "Company",
"options": "Company",
"remember_last_selected_value": 1,
- "reqd": 1,
- "show_days": 1,
- "show_seconds": 1
+ "reqd": 1
},
{
"allow_on_submit": 1,
@@ -197,62 +177,46 @@
"ignore_user_permissions": 1,
"label": "Letter Head",
"options": "Letter Head",
- "print_hide": 1,
- "show_days": 1,
- "show_seconds": 1
+ "print_hide": 1
},
{
"fieldname": "section_break_10",
- "fieldtype": "Section Break",
- "show_days": 1,
- "show_seconds": 1
+ "fieldtype": "Section Break"
},
{
"default": "0",
"fieldname": "salary_slip_based_on_timesheet",
"fieldtype": "Check",
"label": "Salary Slip Based on Timesheet",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fieldname": "start_date",
"fieldtype": "Date",
- "label": "Start Date",
- "show_days": 1,
- "show_seconds": 1
+ "label": "Start Date"
},
{
"fieldname": "end_date",
"fieldtype": "Date",
- "label": "End Date",
- "show_days": 1,
- "show_seconds": 1
+ "label": "End Date"
},
{
"fieldname": "column_break_15",
- "fieldtype": "Column Break",
- "show_days": 1,
- "show_seconds": 1
+ "fieldtype": "Column Break"
},
{
"fieldname": "salary_structure",
"fieldtype": "Link",
"label": "Salary Structure",
"options": "Salary Structure",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"depends_on": "eval:(!doc.salary_slip_based_on_timesheet)",
"fieldname": "payroll_frequency",
"fieldtype": "Select",
"label": "Payroll Frequency",
- "options": "\nMonthly\nFortnightly\nBimonthly\nWeekly\nDaily",
- "show_days": 1,
- "show_seconds": 1
+ "options": "\nMonthly\nFortnightly\nBimonthly\nWeekly\nDaily"
},
{
"fieldname": "total_working_days",
@@ -261,18 +225,14 @@
"oldfieldname": "total_days_in_month",
"oldfieldtype": "Int",
"read_only": 1,
- "reqd": 1,
- "show_days": 1,
- "show_seconds": 1
+ "reqd": 1
},
{
"fieldname": "leave_without_pay",
"fieldtype": "Float",
"label": "Leave Without Pay",
"oldfieldname": "leave_without_pay",
- "oldfieldtype": "Currency",
- "show_days": 1,
- "show_seconds": 1
+ "oldfieldtype": "Currency"
},
{
"fieldname": "payment_days",
@@ -281,52 +241,38 @@
"oldfieldname": "payment_days",
"oldfieldtype": "Float",
"read_only": 1,
- "reqd": 1,
- "show_days": 1,
- "show_seconds": 1
+ "reqd": 1
},
{
"fieldname": "hourly_wages",
- "fieldtype": "Section Break",
- "show_days": 1,
- "show_seconds": 1
+ "fieldtype": "Section Break"
},
{
"fieldname": "timesheets",
"fieldtype": "Table",
"label": "Salary Slip Timesheet",
- "options": "Salary Slip Timesheet",
- "show_days": 1,
- "show_seconds": 1
+ "options": "Salary Slip Timesheet"
},
{
"fieldname": "column_break_20",
- "fieldtype": "Column Break",
- "show_days": 1,
- "show_seconds": 1
+ "fieldtype": "Column Break"
},
{
"fieldname": "total_working_hours",
"fieldtype": "Float",
"label": "Total Working Hours",
- "print_hide_if_no_value": 1,
- "show_days": 1,
- "show_seconds": 1
+ "print_hide_if_no_value": 1
},
{
"fieldname": "hour_rate",
"fieldtype": "Currency",
"label": "Hour Rate",
"options": "Company:company:default_currency",
- "print_hide_if_no_value": 1,
- "show_days": 1,
- "show_seconds": 1
+ "print_hide_if_no_value": 1
},
{
"fieldname": "section_break_26",
- "fieldtype": "Section Break",
- "show_days": 1,
- "show_seconds": 1
+ "fieldtype": "Section Break"
},
{
"fieldname": "bank_name",
@@ -334,9 +280,7 @@
"label": "Bank Name",
"oldfieldname": "bank_name",
"oldfieldtype": "Data",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fieldname": "bank_account_no",
@@ -344,46 +288,34 @@
"label": "Bank Account No.",
"oldfieldname": "bank_account_no",
"oldfieldtype": "Data",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fieldname": "section_break_32",
- "fieldtype": "Section Break",
- "show_days": 1,
- "show_seconds": 1
+ "fieldtype": "Section Break"
},
{
"default": "0",
"fieldname": "deduct_tax_for_unclaimed_employee_benefits",
"fieldtype": "Check",
- "label": "Deduct Tax For Unclaimed Employee Benefits",
- "show_days": 1,
- "show_seconds": 1
+ "label": "Deduct Tax For Unclaimed Employee Benefits"
},
{
"default": "0",
"fieldname": "deduct_tax_for_unsubmitted_tax_exemption_proof",
"fieldtype": "Check",
- "label": "Deduct Tax For Unsubmitted Tax Exemption Proof",
- "show_days": 1,
- "show_seconds": 1
+ "label": "Deduct Tax For Unsubmitted Tax Exemption Proof"
},
{
"fieldname": "earning_deduction",
"fieldtype": "Section Break",
"label": "Earning & Deduction",
- "oldfieldtype": "Section Break",
- "show_days": 1,
- "show_seconds": 1
+ "oldfieldtype": "Section Break"
},
{
"fieldname": "earning",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
- "show_days": 1,
- "show_seconds": 1,
"width": "50%"
},
{
@@ -392,16 +324,12 @@
"label": "Earnings",
"oldfieldname": "earning_details",
"oldfieldtype": "Table",
- "options": "Salary Detail",
- "show_days": 1,
- "show_seconds": 1
+ "options": "Salary Detail"
},
{
"fieldname": "deduction",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
- "show_days": 1,
- "show_seconds": 1,
"width": "50%"
},
{
@@ -410,16 +338,12 @@
"label": "Deductions",
"oldfieldname": "deduction_details",
"oldfieldtype": "Table",
- "options": "Salary Detail",
- "show_days": 1,
- "show_seconds": 1
+ "options": "Salary Detail"
},
{
"fieldname": "totals",
"fieldtype": "Section Break",
- "oldfieldtype": "Section Break",
- "show_days": 1,
- "show_seconds": 1
+ "oldfieldtype": "Section Break"
},
{
"fieldname": "gross_pay",
@@ -428,15 +352,11 @@
"oldfieldname": "gross_pay",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fieldname": "column_break_25",
- "fieldtype": "Column Break",
- "show_days": 1,
- "show_seconds": 1
+ "fieldtype": "Column Break"
},
{
"fieldname": "total_deduction",
@@ -445,32 +365,24 @@
"oldfieldname": "total_deduction",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"depends_on": "total_loan_repayment",
"fieldname": "loan_repayment",
"fieldtype": "Section Break",
- "label": "Loan repayment",
- "show_days": 1,
- "show_seconds": 1
+ "label": "Loan repayment"
},
{
"fieldname": "loans",
"fieldtype": "Table",
"label": "Employee Loan",
"options": "Salary Slip Loan",
- "print_hide": 1,
- "show_days": 1,
- "show_seconds": 1
+ "print_hide": 1
},
{
"fieldname": "section_break_43",
- "fieldtype": "Section Break",
- "show_days": 1,
- "show_seconds": 1
+ "fieldtype": "Section Break"
},
{
"default": "0",
@@ -478,9 +390,7 @@
"fieldtype": "Currency",
"label": "Total Principal Amount",
"options": "Company:company:default_currency",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"default": "0",
@@ -488,15 +398,11 @@
"fieldtype": "Currency",
"label": "Total Interest Amount",
"options": "Company:company:default_currency",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fieldname": "column_break_45",
- "fieldtype": "Column Break",
- "show_days": 1,
- "show_seconds": 1
+ "fieldtype": "Column Break"
},
{
"default": "0",
@@ -504,16 +410,12 @@
"fieldtype": "Currency",
"label": "Total Loan Repayment",
"options": "Company:company:default_currency",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fieldname": "net_pay_info",
"fieldtype": "Section Break",
- "label": "net pay info",
- "show_days": 1,
- "show_seconds": 1
+ "label": "net pay info"
},
{
"description": "Gross Pay - Total Deduction - Loan Repayment",
@@ -523,15 +425,11 @@
"oldfieldname": "net_pay",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fieldname": "column_break_53",
- "fieldtype": "Column Break",
- "show_days": 1,
- "show_seconds": 1
+ "fieldtype": "Column Break"
},
{
"bold": 1,
@@ -539,15 +437,11 @@
"fieldtype": "Currency",
"label": "Rounded Total",
"options": "Company:company:default_currency",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fieldname": "section_break_55",
- "fieldtype": "Section Break",
- "show_days": 1,
- "show_seconds": 1
+ "fieldtype": "Section Break"
},
{
"description": "Net Pay (in words) will be visible once you save the Salary Slip.",
@@ -556,9 +450,7 @@
"label": "Total in words",
"oldfieldname": "net_pay_in_words",
"oldfieldtype": "Data",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fieldname": "amended_from",
@@ -570,9 +462,7 @@
"oldfieldtype": "Data",
"options": "Salary Slip",
"print_hide": 1,
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fetch_from": "employee.payroll_cost_center",
@@ -581,40 +471,32 @@
"fieldtype": "Link",
"label": "Payroll Cost Center",
"options": "Cost Center",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fieldname": "mode_of_payment",
"fieldtype": "Select",
"label": "Mode Of Payment",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fieldname": "absent_days",
"fieldtype": "Float",
"label": "Absent Days",
- "read_only": 1,
- "show_days": 1,
- "show_seconds": 1
+ "read_only": 1
},
{
"fieldname": "unmarked_days",
"fieldtype": "Float",
"hidden": 1,
- "label": "Unmarked days",
- "show_days": 1,
- "show_seconds": 1
+ "label": "Unmarked days"
}
],
"icon": "fa fa-file-text",
"idx": 9,
"is_submittable": 1,
"links": [],
- "modified": "2020-06-25 14:42:43.921828",
+ "modified": "2020-07-22 12:41:03.659422",
"modified_by": "Administrator",
"module": "Payroll",
"name": "Salary Slip",
diff --git a/erpnext/payroll/number_card/total_declaration_submitted/total_declaration_submitted.json b/erpnext/payroll/number_card/total_declaration_submitted/total_declaration_submitted.json
new file mode 100644
index 0000000..fa5739b
--- /dev/null
+++ b/erpnext/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\",false],[\"Employee Tax Exemption Declaration\",\"docstatus\",\"=\",\"1\",false]]",
+ "function": "Count",
+ "idx": 0,
+ "is_public": 1,
+ "is_standard": 1,
+ "label": "Total Declaration Submitted",
+ "modified": "2020-07-22 13:22:46.001099",
+ "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/erpnext/payroll/number_card/total_incentive_given\050last_month\051/total_incentive_given\050last_month\051.json" "b/erpnext/payroll/number_card/total_incentive_given\050last_month\051/total_incentive_given\050last_month\051.json"
new file mode 100644
index 0000000..2106706
--- /dev/null
+++ "b/erpnext/payroll/number_card/total_incentive_given\050last_month\051/total_incentive_given\050last_month\051.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\",false],[\"Employee Incentive\",\"payroll_date\",\"Timespan\",\"last year\",false]]",
+ "function": "Sum",
+ "idx": 0,
+ "is_public": 1,
+ "is_standard": 1,
+ "label": "Total Incentive Given(Last month)",
+ "modified": "2020-07-23 12:05:26.963616",
+ "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/erpnext/payroll/number_card/total_outgoing_salary\050last_month\051/total_outgoing_salary\050last_month\051.json" "b/erpnext/payroll/number_card/total_outgoing_salary\050last_month\051/total_outgoing_salary\050last_month\051.json"
new file mode 100644
index 0000000..44ee722
--- /dev/null
+++ "b/erpnext/payroll/number_card/total_outgoing_salary\050last_month\051/total_outgoing_salary\050last_month\051.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\",false],[\"Salary Slip\",\"start_date\",\"Timespan\",\"last month\",false]]",
+ "function": "Sum",
+ "idx": 0,
+ "is_public": 1,
+ "is_standard": 1,
+ "label": "Total Outgoing Salary(Last month)",
+ "modified": "2020-07-22 13:54:14.678954",
+ "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/erpnext/payroll/number_card/total_salary_structure/total_salary_structure.json b/erpnext/payroll/number_card/total_salary_structure/total_salary_structure.json
new file mode 100644
index 0000000..030935f
--- /dev/null
+++ b/erpnext/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\",false]]",
+ "function": "Count",
+ "idx": 0,
+ "is_public": 1,
+ "is_standard": 1,
+ "label": "Total Salary Structure",
+ "modified": "2020-07-22 13:24:03.938846",
+ "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/erpnext/payroll/payroll_dashboard/payroll/payroll.json b/erpnext/payroll/payroll_dashboard/payroll/payroll.json
new file mode 100644
index 0000000..fb49d88
--- /dev/null
+++ b/erpnext/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": "2020-07-22 13:20:18.608969",
+ "modified_by": "Administrator",
+ "module": "Payroll",
+ "name": "Payroll",
+ "owner": "Administrator"
+}
\ No newline at end of file