Anand Doshi | 885e074 | 2015-03-03 14:55:30 +0530 | [diff] [blame] | 1 | # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors |
Rushabh Mehta | e67d1fb | 2013-08-05 14:59:54 +0530 | [diff] [blame] | 2 | # License: GNU General Public License v3. See license.txt |
Anand Doshi | 60666a2 | 2013-04-12 20:19:53 +0530 | [diff] [blame] | 3 | |
| 4 | from __future__ import unicode_literals |
Rushabh Mehta | 793ba6b | 2014-02-14 15:47:51 +0530 | [diff] [blame] | 5 | import frappe |
| 6 | from frappe import _ |
Ranjith | fddfffd | 2018-05-05 13:27:26 +0530 | [diff] [blame] | 7 | from frappe.utils import formatdate, format_datetime |
| 8 | from frappe.utils import getdate, get_datetime |
Anand Doshi | 60666a2 | 2013-04-12 20:19:53 +0530 | [diff] [blame] | 9 | |
Anand Doshi | c280d06 | 2014-05-30 14:43:36 +0530 | [diff] [blame] | 10 | def set_employee_name(doc): |
| 11 | if doc.employee and not doc.employee_name: |
| 12 | doc.employee_name = frappe.db.get_value("Employee", doc.employee, "employee_name") |
Ranjith | fddfffd | 2018-05-05 13:27:26 +0530 | [diff] [blame] | 13 | |
| 14 | @frappe.whitelist() |
| 15 | def get_employee_fields_label(): |
| 16 | fields = [] |
| 17 | for df in frappe.get_meta("Employee").get("fields"): |
| 18 | if df.fieldtype in ["Data", "Date", "Datetime", "Float", "Int", |
| 19 | "Link", "Percent", "Select", "Small Text"] and df.fieldname not in ["lft", "rgt", "old_parent"]: |
| 20 | fields.append({"value": df.fieldname, "label": df.label}) |
| 21 | return fields |
| 22 | |
| 23 | @frappe.whitelist() |
| 24 | def get_employee_field_property(employee, fieldname): |
| 25 | if employee and fieldname: |
| 26 | field = frappe.get_meta("Employee").get_field(fieldname) |
| 27 | value = frappe.db.get_value("Employee", employee, fieldname) |
| 28 | options = field.options |
| 29 | if field.fieldtype == "Date": |
| 30 | value = formatdate(value) |
| 31 | elif field.fieldtype == "Datetime": |
| 32 | value = format_datetime(value) |
| 33 | return { |
| 34 | "value" : value, |
| 35 | "datatype" : field.fieldtype, |
| 36 | "label" : field.label, |
| 37 | "options" : options |
| 38 | } |
| 39 | else: |
| 40 | return False |
| 41 | |
| 42 | def update_employee(employee, details, cancel=False): |
| 43 | for item in details: |
| 44 | fieldtype = frappe.get_meta("Employee").get_field(item.fieldname).fieldtype |
| 45 | new_data = item.new if not cancel else item.current |
| 46 | if fieldtype == "Date" and new_data: |
| 47 | new_data = getdate(new_data) |
| 48 | elif fieldtype =="Datetime" and new_data: |
| 49 | new_data = get_datetime(new_data) |
| 50 | setattr(employee, item.fieldname, new_data) |
| 51 | return employee |