Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/hr/doctype/salary_structure/salary_structure.py b/hr/doctype/salary_structure/salary_structure.py
index 22789e3..018aab7 100644
--- a/hr/doctype/salary_structure/salary_structure.py
+++ b/hr/doctype/salary_structure/salary_structure.py
@@ -18,31 +18,25 @@
import webnotes
from webnotes.utils import cstr, flt
-from webnotes.model import db_exists
from webnotes.model.doc import addchild, make_autoname
-from webnotes.model.bean import copy_doclist
-from webnotes import msgprint
+from webnotes import msgprint, _
sql = webnotes.conn.sql
class DocType:
- #init function
def __init__(self,doc,doclist=[]):
self.doc = doc
self.doclist = doclist
-
- #autoname function
- #---------------------------------------------------------
+
def autoname(self):
self.doc.name = make_autoname(self.doc.employee + '/.SST' + '/.#####')
-
- #get employee details
- #---------------------------------------------------------
+
def get_employee_details(self):
ret = {}
- det = sql("select employee_name, branch, designation, department, grade from `tabEmployee` where name = '%s'" %self.doc.employee)
+ det = sql("""select employee_name, branch, designation, department, grade
+ from `tabEmployee` where name = %s""", self.doc.employee)
if det:
ret = {
'employee_name': cstr(det[0][0]),
@@ -53,20 +47,16 @@
'backup_employee': cstr(self.doc.employee)
}
return ret
-
- # Set Salary structure field values
- #---------------------------------------------------------
def get_ss_values(self,employee):
- basic_info = sql("select bank_name, bank_ac_no, esic_card_no, pf_number from `tabEmployee` where name ='%s'" % employee)
+ basic_info = sql("""select bank_name, bank_ac_no, esic_card_no, pf_number
+ from `tabEmployee` where name =%s""", employee)
ret = {'bank_name': basic_info and basic_info[0][0] or '',
'bank_ac_no': basic_info and basic_info[0][1] or '',
'esic_no': basic_info and basic_info[0][2] or '',
'pf_no': basic_info and basic_info[0][3] or ''}
return ret
-
- # Make earning and deduction table
- #---------------------------------------------------------
+
def make_table(self, doct_name, tab_fname, tab_name):
list1 = sql("select name from `tab%s` where docstatus != 2" % doct_name)
for li in list1:
@@ -77,37 +67,31 @@
elif(tab_fname == 'deduction_details'):
child.d_type = cstr(li[0])
child.d_modified_amt = 0
-
- # add earning & deduction types to table
- #---------------------------------------------------------
+
def make_earn_ded_table(self):
- #Earning List
self.make_table('Earning Type','earning_details','Salary Structure Earning')
-
- #Deduction List
- self.make_table('Deduction Type','deduction_details',
- 'Salary Structure Deduction')
-
+ self.make_table('Deduction Type','deduction_details', 'Salary Structure Deduction')
- # Check if another active ss exists
- #---------------------------------------------------------
def check_existing(self):
- ret = sql("select name from `tabSalary Structure` where is_active = 'Yes' and employee = '%s' and name!='%s'" %(self.doc.employee,self.doc.name))
+ ret = sql("""select name from `tabSalary Structure` where is_active = 'Yes'
+ and employee = %s and name!=%s""", (self.doc.employee,self.doc.name))
if ret and self.doc.is_active=='Yes':
- msgprint("Another Salary Structure '%s' is active for employee '%s'. Please make its status 'Inactive' to proceed."%(cstr(ret), self.doc.employee))
- raise Exception
+ msgprint(_("""Another Salary Structure '%s' is active for employee '%s'.
+ Please make its status 'Inactive' to proceed.""") %
+ (cstr(ret), self.doc.employee), raise_exception=1)
- # Validate net pay
- #---------------------------------------------------------
- def validate_net_pay(self):
+ def validate_amount(self):
+ if flt(self.doc.ctc) < 12*flt(self.doc.total_earning):
+ msgprint(_("Annual Cost To Company can not be less than 12 months of Total Earning"),
+ raise_exception=1)
+
if flt(self.doc.net_pay) < 0:
- msgprint("Net pay can not be negative")
- raise Exception
- elif flt(self.doc.net_pay) > flt(self.doc.ctc):
- msgprint("Net pay can not be greater than CTC")
- raise Exception
+ msgprint(_("Net pay can not be negative"), raise_exception=1)
+ elif flt(self.doc.net_pay)*12 > flt(self.doc.ctc):
+ msgprint(_("Net pay can not be greater than 1/12th of Annual Cost To Company"),
+ raise_exception=1)
+
def validate(self):
self.check_existing()
- self.validate_net_pay()
-
+ self.validate_amount()
\ No newline at end of file