fix(HR): Leave application company field made read-only and filter in Monthly attendance sheet (#20912)

* fix(HR): Leave application company field made Readonly

* fix: in monthly report attandance employee filter based on company

* fix: minor typo

* fix: Fetch company from employee

* Update monthly_attendance_sheet.py

Co-authored-by: Nabin Hait <nabinhait@gmail.com>
This commit is contained in:
Vishal Dhayagude
2020-05-01 18:11:43 +05:30
committed by GitHub
parent 0f8150f8de
commit 2e082affc7
2 changed files with 339 additions and 334 deletions

View File

@@ -1,332 +1,337 @@
{ {
"allow_import": 1, "actions": [],
"autoname": "naming_series:", "allow_import": 1,
"creation": "2013-02-20 11:18:11", "autoname": "naming_series:",
"description": "Apply / Approve Leaves", "creation": "2013-02-20 11:18:11",
"doctype": "DocType", "description": "Apply / Approve Leaves",
"document_type": "Document", "doctype": "DocType",
"engine": "InnoDB", "document_type": "Document",
"field_order": [ "engine": "InnoDB",
"naming_series", "field_order": [
"employee", "naming_series",
"employee_name", "employee",
"column_break_4", "employee_name",
"leave_type", "column_break_4",
"department", "leave_type",
"leave_balance", "department",
"section_break_5", "leave_balance",
"from_date", "section_break_5",
"to_date", "from_date",
"half_day", "to_date",
"half_day_date", "half_day",
"total_leave_days", "half_day_date",
"column_break1", "total_leave_days",
"description", "column_break1",
"section_break_7", "description",
"leave_approver", "section_break_7",
"leave_approver_name", "leave_approver",
"column_break_18", "leave_approver_name",
"status", "column_break_18",
"salary_slip", "status",
"sb10", "salary_slip",
"posting_date", "sb10",
"follow_via_email", "posting_date",
"color", "follow_via_email",
"column_break_17", "color",
"company", "column_break_17",
"letter_head", "company",
"amended_from" "letter_head",
], "amended_from"
"fields": [ ],
{ "fields": [
"fieldname": "naming_series", {
"fieldtype": "Select", "fieldname": "naming_series",
"label": "Series", "fieldtype": "Select",
"no_copy": 1, "label": "Series",
"options": "HR-LAP-.YYYY.-", "no_copy": 1,
"print_hide": 1, "options": "HR-LAP-.YYYY.-",
"reqd": 1, "print_hide": 1,
"set_only_once": 1 "reqd": 1,
}, "set_only_once": 1
{ },
"fieldname": "employee", {
"fieldtype": "Link", "fieldname": "employee",
"in_global_search": 1, "fieldtype": "Link",
"in_standard_filter": 1, "in_global_search": 1,
"label": "Employee", "in_standard_filter": 1,
"options": "Employee", "label": "Employee",
"reqd": 1, "options": "Employee",
"search_index": 1 "reqd": 1,
}, "search_index": 1
{ },
"fieldname": "employee_name", {
"fieldtype": "Data", "fieldname": "employee_name",
"in_global_search": 1, "fieldtype": "Data",
"label": "Employee Name", "in_global_search": 1,
"read_only": 1 "label": "Employee Name",
}, "read_only": 1
{ },
"fieldname": "column_break_4", {
"fieldtype": "Column Break" "fieldname": "column_break_4",
}, "fieldtype": "Column Break"
{ },
"fieldname": "leave_type", {
"fieldtype": "Link", "fieldname": "leave_type",
"ignore_user_permissions": 1, "fieldtype": "Link",
"in_standard_filter": 1, "ignore_user_permissions": 1,
"label": "Leave Type", "in_standard_filter": 1,
"options": "Leave Type", "label": "Leave Type",
"reqd": 1, "options": "Leave Type",
"search_index": 1 "reqd": 1,
}, "search_index": 1
{ },
"fetch_from": "employee.department", {
"fieldname": "department", "fetch_from": "employee.department",
"fieldtype": "Link", "fieldname": "department",
"label": "Department", "fieldtype": "Link",
"options": "Department", "label": "Department",
"read_only": 1 "options": "Department",
}, "read_only": 1
{ },
"fieldname": "leave_balance", {
"fieldtype": "Float", "fieldname": "leave_balance",
"label": "Leave Balance Before Application", "fieldtype": "Float",
"no_copy": 1, "label": "Leave Balance Before Application",
"read_only": 1 "no_copy": 1,
}, "read_only": 1
{ },
"fieldname": "section_break_5", {
"fieldtype": "Section Break" "fieldname": "section_break_5",
}, "fieldtype": "Section Break"
{ },
"fieldname": "from_date", {
"fieldtype": "Date", "fieldname": "from_date",
"in_list_view": 1, "fieldtype": "Date",
"label": "From Date", "in_list_view": 1,
"reqd": 1, "label": "From Date",
"search_index": 1 "reqd": 1,
}, "search_index": 1
{ },
"fieldname": "to_date", {
"fieldtype": "Date", "fieldname": "to_date",
"label": "To Date", "fieldtype": "Date",
"reqd": 1, "label": "To Date",
"search_index": 1 "reqd": 1,
}, "search_index": 1
{ },
"default": "0", {
"fieldname": "half_day", "default": "0",
"fieldtype": "Check", "fieldname": "half_day",
"label": "Half Day" "fieldtype": "Check",
}, "label": "Half Day"
{ },
"depends_on": "eval:doc.half_day && (doc.from_date != doc.to_date)", {
"fieldname": "half_day_date", "depends_on": "eval:doc.half_day && (doc.from_date != doc.to_date)",
"fieldtype": "Date", "fieldname": "half_day_date",
"label": "Half Day Date" "fieldtype": "Date",
}, "label": "Half Day Date"
{ },
"fieldname": "total_leave_days", {
"fieldtype": "Float", "fieldname": "total_leave_days",
"in_list_view": 1, "fieldtype": "Float",
"label": "Total Leave Days", "in_list_view": 1,
"no_copy": 1, "label": "Total Leave Days",
"precision": "1", "no_copy": 1,
"read_only": 1 "precision": "1",
}, "read_only": 1
{ },
"fieldname": "column_break1", {
"fieldtype": "Column Break", "fieldname": "column_break1",
"print_width": "50%", "fieldtype": "Column Break",
"width": "50%" "print_width": "50%",
}, "width": "50%"
{ },
"fieldname": "description", {
"fieldtype": "Small Text", "fieldname": "description",
"label": "Reason" "fieldtype": "Small Text",
}, "label": "Reason"
{ },
"fieldname": "section_break_7", {
"fieldtype": "Section Break" "fieldname": "section_break_7",
}, "fieldtype": "Section Break"
{ },
"fieldname": "leave_approver", {
"fieldtype": "Link", "fieldname": "leave_approver",
"label": "Leave Approver", "fieldtype": "Link",
"options": "User" "label": "Leave Approver",
}, "options": "User"
{ },
"fieldname": "leave_approver_name", {
"fieldtype": "Data", "fieldname": "leave_approver_name",
"label": "Leave Approver Name", "fieldtype": "Data",
"read_only": 1 "label": "Leave Approver Name",
}, "read_only": 1
{ },
"fieldname": "column_break_18", {
"fieldtype": "Column Break" "fieldname": "column_break_18",
}, "fieldtype": "Column Break"
{ },
"default": "Open", {
"fieldname": "status", "default": "Open",
"fieldtype": "Select", "fieldname": "status",
"in_standard_filter": 1, "fieldtype": "Select",
"label": "Status", "in_standard_filter": 1,
"no_copy": 1, "label": "Status",
"options": "Open\nApproved\nRejected\nCancelled" "no_copy": 1,
}, "options": "Open\nApproved\nRejected\nCancelled",
{ "permlevel": 1
"fieldname": "sb10", },
"fieldtype": "Section Break" {
}, "fieldname": "sb10",
{ "fieldtype": "Section Break"
"default": "Today", },
"fieldname": "posting_date", {
"fieldtype": "Date", "default": "Today",
"label": "Posting Date", "fieldname": "posting_date",
"no_copy": 1, "fieldtype": "Date",
"reqd": 1 "label": "Posting Date",
}, "no_copy": 1,
{ "reqd": 1
"fieldname": "company", },
"fieldtype": "Link", {
"label": "Company", "fieldname": "company",
"options": "Company", "fieldtype": "Link",
"remember_last_selected_value": 1, "label": "Company",
"reqd": 1 "options": "Company",
}, "read_only": 1,
{ "remember_last_selected_value": 1,
"allow_on_submit": 1, "reqd": 1,
"default": "1", "fetch_from": "employee.company",
"fieldname": "follow_via_email", },
"fieldtype": "Check", {
"label": "Follow via Email", "allow_on_submit": 1,
"print_hide": 1 "default": "1",
}, "fieldname": "follow_via_email",
{ "fieldtype": "Check",
"fieldname": "column_break_17", "label": "Follow via Email",
"fieldtype": "Column Break" "print_hide": 1
}, },
{ {
"fieldname": "salary_slip", "fieldname": "column_break_17",
"fieldtype": "Link", "fieldtype": "Column Break"
"label": "Salary Slip", },
"options": "Salary Slip", {
"print_hide": 1 "fieldname": "salary_slip",
}, "fieldtype": "Link",
{ "label": "Salary Slip",
"allow_on_submit": 1, "options": "Salary Slip",
"fieldname": "letter_head", "print_hide": 1
"fieldtype": "Link", },
"ignore_user_permissions": 1, {
"label": "Letter Head", "allow_on_submit": 1,
"options": "Letter Head", "fieldname": "letter_head",
"print_hide": 1 "fieldtype": "Link",
}, "ignore_user_permissions": 1,
{ "label": "Letter Head",
"allow_on_submit": 1, "options": "Letter Head",
"fieldname": "color", "print_hide": 1
"fieldtype": "Color", },
"label": "Color", {
"print_hide": 1 "allow_on_submit": 1,
}, "fieldname": "color",
{ "fieldtype": "Color",
"fieldname": "amended_from", "label": "Color",
"fieldtype": "Link", "print_hide": 1
"ignore_user_permissions": 1, },
"label": "Amended From", {
"no_copy": 1, "fieldname": "amended_from",
"options": "Leave Application", "fieldtype": "Link",
"print_hide": 1, "ignore_user_permissions": 1,
"read_only": 1 "label": "Amended From",
} "no_copy": 1,
], "options": "Leave Application",
"icon": "fa fa-calendar", "print_hide": 1,
"idx": 1, "read_only": 1
"is_submittable": 1, }
"max_attachments": 3, ],
"modified": "2019-08-13 13:32:04.860848", "icon": "fa fa-calendar",
"modified_by": "Administrator", "idx": 1,
"module": "HR", "is_submittable": 1,
"name": "Leave Application", "links": [],
"owner": "Administrator", "max_attachments": 3,
"permissions": [ "modified": "2020-03-10 22:40:43.487721",
{ "modified_by": "Administrator",
"create": 1, "module": "HR",
"email": 1, "name": "Leave Application",
"print": 1, "owner": "Administrator",
"read": 1, "permissions": [
"report": 1, {
"role": "Employee", "create": 1,
"share": 1, "email": 1,
"write": 1 "print": 1,
}, "read": 1,
{ "report": 1,
"amend": 1, "role": "Employee",
"cancel": 1, "share": 1,
"create": 1, "write": 1
"delete": 1, },
"email": 1, {
"export": 1, "amend": 1,
"print": 1, "cancel": 1,
"read": 1, "create": 1,
"report": 1, "delete": 1,
"role": "HR Manager", "email": 1,
"set_user_permissions": 1, "export": 1,
"share": 1, "print": 1,
"submit": 1, "read": 1,
"write": 1 "report": 1,
}, "role": "HR Manager",
{ "set_user_permissions": 1,
"permlevel": 1, "share": 1,
"read": 1, "submit": 1,
"role": "All" "write": 1
}, },
{ {
"amend": 1, "permlevel": 1,
"cancel": 1, "read": 1,
"create": 1, "role": "All"
"delete": 1, },
"email": 1, {
"print": 1, "amend": 1,
"read": 1, "cancel": 1,
"report": 1, "create": 1,
"role": "HR User", "delete": 1,
"set_user_permissions": 1, "email": 1,
"share": 1, "print": 1,
"submit": 1, "read": 1,
"write": 1 "report": 1,
}, "role": "HR User",
{ "set_user_permissions": 1,
"amend": 1, "share": 1,
"cancel": 1, "submit": 1,
"delete": 1, "write": 1
"email": 1, },
"print": 1, {
"read": 1, "amend": 1,
"report": 1, "cancel": 1,
"role": "Leave Approver", "delete": 1,
"share": 1, "email": 1,
"submit": 1, "print": 1,
"write": 1 "read": 1,
}, "report": 1,
{ "role": "Leave Approver",
"permlevel": 1, "share": 1,
"read": 1, "submit": 1,
"report": 1, "write": 1
"role": "HR User", },
"write": 1 {
}, "permlevel": 1,
{ "read": 1,
"permlevel": 1, "report": 1,
"read": 1, "role": "HR User",
"report": 1, "write": 1
"role": "Leave Approver", },
"write": 1 {
} "permlevel": 1,
], "read": 1,
"search_fields": "employee,employee_name,leave_type,from_date,to_date,total_leave_days", "report": 1,
"sort_field": "modified", "role": "Leave Approver",
"sort_order": "DESC", "write": 1
"timeline_field": "employee", }
"title_field": "employee_name" ],
} "search_fields": "employee,employee_name,leave_type,from_date,to_date,total_leave_days",
"sort_field": "modified",
"sort_order": "DESC",
"timeline_field": "employee",
"title_field": "employee_name"
}

View File

@@ -13,7 +13,7 @@ def execute(filters=None):
conditions, filters = get_conditions(filters) conditions, filters = get_conditions(filters)
columns = get_columns(filters) columns = get_columns(filters)
att_map = get_attendance_list(conditions, filters) att_map = get_attendance_list(conditions, filters)
emp_map = get_employee_details() emp_map = get_employee_details(filters)
holiday_list = [emp_map[d]["holiday_list"] for d in emp_map if emp_map[d]["holiday_list"]] holiday_list = [emp_map[d]["holiday_list"] for d in emp_map if emp_map[d]["holiday_list"]]
default_holiday_list = frappe.get_cached_value('Company', filters.get("company"), "default_holiday_list") default_holiday_list = frappe.get_cached_value('Company', filters.get("company"), "default_holiday_list")
@@ -140,10 +140,10 @@ def get_conditions(filters):
return conditions, filters return conditions, filters
def get_employee_details(): def get_employee_details(filters):
emp_map = frappe._dict() emp_map = frappe._dict()
for d in frappe.db.sql("""select name, employee_name, designation, department, branch, company, for d in frappe.db.sql("""select name, employee_name, designation, department, branch, company,
holiday_list from tabEmployee""", as_dict=1): holiday_list from tabEmployee where company = %s""", (filters.get("company")), as_dict=1):
emp_map.setdefault(d.name, d) emp_map.setdefault(d.name, d)
return emp_map return emp_map