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 00000000000..4666aec4c6a --- /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 00000000000..c21bfb9f362 --- /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 00000000000..b1953d40ffe --- /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 00000000000..b10235cb8e1 --- /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 00000000000..49ea98a4fce --- /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 00000000000..48578c97281 --- /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 00000000000..bfcfa967523 --- /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 1e9b4f3c93a..00000000000 --- 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 00000000000..f74d9a3c57f --- /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_(last_year)/employees_left_(last_year).json b/erpnext/hr/number_card/employees_left_(last_year)/employees_left_(last_year).json new file mode 100644 index 00000000000..6a91912eff0 --- /dev/null +++ b/erpnext/hr/number_card/employees_left_(last_year)/employees_left_(last_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\",\"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_(last_year)/new_joinees_(last_year).json b/erpnext/hr/number_card/new_joinees_(last_year)/new_joinees_(last_year).json new file mode 100644 index 00000000000..8f5ad9ce31b --- /dev/null +++ b/erpnext/hr/number_card/new_joinees_(last_year)/new_joinees_(last_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\",\"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_(last_month)/total_applicants_(last_month).json b/erpnext/hr/number_card/total_applicants_(last_month)/total_applicants_(last_month).json new file mode 100644 index 00000000000..1af42cabf68 --- /dev/null +++ b/erpnext/hr/number_card/total_applicants_(last_month)/total_applicants_(last_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\",\"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 00000000000..932e255c9c5 --- /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 bd4ed3c4caf..4b9b928640e 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 47daab19017..46082129e24 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 @@ def get_conditions(filters): 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(last_month)/department_wise_salary(last_month).json b/erpnext/payroll/dashboard_chart/department_wise_salary(last_month)/department_wise_salary(last_month).json new file mode 100644 index 00000000000..61ae86ff028 --- /dev/null +++ b/erpnext/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\",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(last_month)/designation_wise_salary(last_month).json b/erpnext/payroll/dashboard_chart/designation_wise_salary(last_month)/designation_wise_salary(last_month).json new file mode 100644 index 00000000000..b3c4e593955 --- /dev/null +++ b/erpnext/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\",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 00000000000..c77c8a5a369 --- /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 ae7a9ff51af..00000000000 --- 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 88931c2a4b8..27a974ac837 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 00000000000..fa5739b2f3d --- /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(last_month)/total_incentive_given(last_month).json b/erpnext/payroll/number_card/total_incentive_given(last_month)/total_incentive_given(last_month).json new file mode 100644 index 00000000000..21067061735 --- /dev/null +++ b/erpnext/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\",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(last_month)/total_outgoing_salary(last_month).json b/erpnext/payroll/number_card/total_outgoing_salary(last_month)/total_outgoing_salary(last_month).json new file mode 100644 index 00000000000..44ee72203f8 --- /dev/null +++ b/erpnext/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\",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 00000000000..030935f96d7 --- /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 00000000000..fb49d88de7d --- /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