update missing salary component abbr
This commit is contained in:
parent
d65d67e0a7
commit
00e841d744
@ -31,6 +31,7 @@
|
||||
"print_hide": 0,
|
||||
"print_hide_if_no_value": 0,
|
||||
"read_only": 0,
|
||||
"remember_last_selected_value": 0,
|
||||
"report_hide": 0,
|
||||
"reqd": 1,
|
||||
"search_index": 0,
|
||||
@ -58,8 +59,9 @@
|
||||
"print_hide_if_no_value": 0,
|
||||
"print_width": "120px",
|
||||
"read_only": 0,
|
||||
"remember_last_selected_value": 0,
|
||||
"report_hide": 0,
|
||||
"reqd": 0,
|
||||
"reqd": 1,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"unique": 0,
|
||||
@ -86,6 +88,7 @@
|
||||
"print_hide": 0,
|
||||
"print_hide_if_no_value": 0,
|
||||
"read_only": 0,
|
||||
"remember_last_selected_value": 0,
|
||||
"report_hide": 0,
|
||||
"reqd": 1,
|
||||
"search_index": 0,
|
||||
@ -112,6 +115,7 @@
|
||||
"print_hide": 0,
|
||||
"print_hide_if_no_value": 0,
|
||||
"read_only": 0,
|
||||
"remember_last_selected_value": 0,
|
||||
"report_hide": 0,
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
@ -137,6 +141,7 @@
|
||||
"print_hide": 0,
|
||||
"print_hide_if_no_value": 0,
|
||||
"read_only": 0,
|
||||
"remember_last_selected_value": 0,
|
||||
"report_hide": 0,
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
@ -164,6 +169,7 @@
|
||||
"print_hide": 0,
|
||||
"print_hide_if_no_value": 0,
|
||||
"read_only": 0,
|
||||
"remember_last_selected_value": 0,
|
||||
"report_hide": 0,
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
@ -182,7 +188,7 @@
|
||||
"issingle": 0,
|
||||
"istable": 0,
|
||||
"max_attachments": 0,
|
||||
"modified": "2016-08-31 08:08:47.359578",
|
||||
"modified": "2016-11-16 12:44:37.733773",
|
||||
"modified_by": "Administrator",
|
||||
"module": "HR",
|
||||
"name": "Salary Component",
|
||||
@ -199,6 +205,7 @@
|
||||
"export": 1,
|
||||
"if_owner": 0,
|
||||
"import": 0,
|
||||
"is_custom": 0,
|
||||
"permlevel": 0,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
|
@ -11,7 +11,6 @@ class SalaryComponent(Document):
|
||||
def validate(self):
|
||||
self.validate_abbr()
|
||||
|
||||
|
||||
def validate_abbr(self):
|
||||
if not self.salary_component_abbr:
|
||||
self.salary_component_abbr = ''.join([c[0] for c in self.salary_component.split()]).upper()
|
||||
@ -21,8 +20,5 @@ class SalaryComponent(Document):
|
||||
if self.get('__islocal') and len(self.salary_component_abbr) > 5:
|
||||
frappe.throw(_("Abbreviation cannot have more than 5 characters"))
|
||||
|
||||
if not self.salary_component_abbr.strip():
|
||||
frappe.throw(_("Abbreviation is mandatory"))
|
||||
|
||||
if frappe.db.sql("select salary_component_abbr from `tabSalary Component` where name!=%s and salary_component_abbr=%s", (self.name, self.salary_component_abbr)):
|
||||
frappe.throw(_("Abbreviation already used for another salary component"))
|
@ -1,6 +1,7 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import frappe
|
||||
from frappe.utils import cstr
|
||||
|
||||
'''
|
||||
Some components do not have type set, try and guess whether they turn up in
|
||||
@ -8,18 +9,38 @@ earnings or deductions in existing salary slips
|
||||
'''
|
||||
|
||||
def execute():
|
||||
for s in frappe.db.sql('select name from `tabSalary Component` where ifnull(type, "")=""'):
|
||||
compontent = frappe.get_doc('Salary Component', s[0])
|
||||
for s in frappe.db.sql('''select name, type, salary_component_abbr from `tabSalary Component`
|
||||
where ifnull(type, "")="" or ifnull(salary_component_abbr, "") = ""''', as_dict=1):
|
||||
|
||||
component = frappe.get_doc('Salary Component', s.name)
|
||||
|
||||
# guess
|
||||
if not s.type:
|
||||
guess = frappe.db.sql('''select
|
||||
parentfield from `tabSalary Detail`
|
||||
where salary_component=%s limit 1''', s[0])
|
||||
where salary_component=%s limit 1''', s.name)
|
||||
|
||||
if guess:
|
||||
compontent.type = 'Earning' if guess[0][0]=='earnings' else 'Deduction'
|
||||
component.type = 'Earning' if guess[0][0]=='earnings' else 'Deduction'
|
||||
|
||||
else:
|
||||
compontent.type = 'Deduction'
|
||||
component.type = 'Deduction'
|
||||
|
||||
compontent.save()
|
||||
if not s.salary_component_abbr:
|
||||
abbr = ''.join([c[0] for c in component.salary_component.split()]).upper()
|
||||
|
||||
abbr_count = frappe.db.sql("""
|
||||
select
|
||||
count(name)
|
||||
from
|
||||
`tabSalary Component`
|
||||
where
|
||||
salary_component_abbr = %s or salary_component_abbr like %s
|
||||
""", (abbr, abbr + "-%%"))
|
||||
|
||||
if abbr_count and abbr_count[0][0] > 0:
|
||||
abbr = abbr + "-" + cstr(abbr_count[0][0])
|
||||
|
||||
component.salary_component_abbr = abbr
|
||||
|
||||
component.save()
|
Loading…
Reference in New Issue
Block a user