[IMP][FIX]hr_payroll: fixed the error if contract is not define and some improvement in report.
bzr revid: vra@tinyerp.com-20101008094910-psvxtftbau0txae6
This commit is contained in:
@@ -33,32 +33,32 @@ class salary_structure_report(report_sxw.rml_parse):
|
||||
self.localcontext.update({
|
||||
'time': time,
|
||||
'get_type':self.get_type,
|
||||
'get_contract':self.get_contract,
|
||||
#'get_contract':self.get_contract,
|
||||
'get_line_amount_type':self.get_line_amount_type,
|
||||
'get_line_type':self.get_line_type,
|
||||
'get_line_amount_symbol':self.get_line_amount_symbol
|
||||
})
|
||||
|
||||
def get_contract(self,emp):
|
||||
curr_date = "'"+time.strftime("%Y-%m-%d")+"'"
|
||||
sql_req= '''
|
||||
SELECT c.id as id, c.wage as wage, struct_id as struct
|
||||
FROM hr_contract c
|
||||
LEFT JOIN hr_employee emp on (c.employee_id=emp.id)
|
||||
LEFT JOIN hr_contract_wage_type cwt on (cwt.id = c.wage_type_id)
|
||||
LEFT JOIN hr_contract_wage_type_period p on (cwt.period_id = p.id)
|
||||
WHERE
|
||||
(emp.id=%s) AND
|
||||
(date_start <= %s) AND
|
||||
(date_end IS NULL OR date_end >= %s)
|
||||
LIMIT 1
|
||||
'''%(emp.id, curr_date, curr_date)
|
||||
self.cr.execute(sql_req)
|
||||
contract_id = self.cr.dictfetchone()
|
||||
if not contract_id:
|
||||
return []
|
||||
contract = self.pool.get('hr.contract').browse(self.cr, self.uid, [contract_id['id']])
|
||||
return contract
|
||||
# def get_contract(self,emp):
|
||||
# curr_date = "'"+time.strftime("%Y-%m-%d")+"'"
|
||||
# sql_req= '''
|
||||
# SELECT c.id as id, c.wage as wage, struct_id as struct
|
||||
# FROM hr_contract c
|
||||
# LEFT JOIN hr_employee emp on (c.employee_id=emp.id)
|
||||
# LEFT JOIN hr_contract_wage_type cwt on (cwt.id = c.wage_type_id)
|
||||
# LEFT JOIN hr_contract_wage_type_period p on (cwt.period_id = p.id)
|
||||
# WHERE
|
||||
# (emp.id=%s) AND
|
||||
# (date_start <= %s) AND
|
||||
# (date_end IS NULL OR date_end >= %s)
|
||||
# LIMIT 1
|
||||
# '''%(emp.id, curr_date, curr_date)
|
||||
# self.cr.execute(sql_req)
|
||||
# contract_id = self.cr.dictfetchone()
|
||||
# if not contract_id:
|
||||
# return []
|
||||
# contract = self.pool.get('hr.contract').browse(self.cr, self.uid, [contract_id['id']])
|
||||
# return contract
|
||||
|
||||
def get_type(self,type):
|
||||
return type[0].swapcase() + type[1:] +' Salary'
|
||||
|
||||
@@ -267,7 +267,7 @@
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="terp_default_9">[[repeatIn(get_contract(employee),'cont')]]</para>
|
||||
<para style="terp_default_9">[[ not employee.contract_id and removeParentNode('section') ]]</para>
|
||||
<blockTable colWidths="68.0,111.0,63.0,111.0,71.0,115.0" style="Table4">
|
||||
<tr>
|
||||
<td>
|
||||
@@ -318,7 +318,7 @@
|
||||
<para style="terp_tblheader_Details">Designation</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ cont.job_id.name or '' ]]</para>
|
||||
<para style="terp_default_9">[[ employee.contract_id and employee.contract_id.job_id and employee.contract_id.job_id.name or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Phone No.</para>
|
||||
@@ -334,7 +334,7 @@
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_space">
|
||||
<para style="terp_default_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="539.0" style="Table13">
|
||||
@@ -356,19 +356,19 @@
|
||||
<para style="terp_tblheader_Details">Start Date</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ formatLang(cont.date_start,date=True) or '' ]]</para>
|
||||
<para style="terp_default_9">[[ employee.contract_id and formatLang(employee.contract_id.date_start,date=True) or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">End Date</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ formatLang(cont.date_end,date=True) or removeParentNode('para') ]]</para>
|
||||
<para style="terp_default_9">[[ employee.contract_id and formatLang(employee.contract_id.date_end,date=True) or removeParentNode('para') ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Type</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ get_type(cont.wage_type_id.type) or '' ]]</para>
|
||||
<para style="terp_default_9">[[ employee.contract_id and get_type(employee.contract_id.wage_type_id.type) or '' ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
@@ -378,13 +378,13 @@
|
||||
<para style="terp_tblheader_Details">Salary</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ formatLang(cont.wage) or '' ]] [[ employee.company_id.currency_id.symbol]]</para>
|
||||
<para style="terp_default_9">[[ employee.contract_id and formatLang(employee.contract_id.wage) or '' ]] [[ employee.company_id.currency_id.symbol]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Notes:</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ cont.notes or '' ]]</para>
|
||||
<para style="terp_default_9">[[ employee.contract_id and employee.contract_id.notes or '' ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
@@ -394,19 +394,19 @@
|
||||
<para style="terp_tblheader_Details">Basic</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ cont.basic ]] [[ employee.company_id.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_9">[[ employee.basic ]] [[ employee.company_id.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Allowances</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ cont.advantages_gross ]] [[ employee.company_id.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_9">[[ employee.advantages_gross ]] [[ employee.company_id.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Gross Salary</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ cont.gross ]] [[ employee.company_id.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_9">[[ employee.gross ]] [[ employee.company_id.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
@@ -416,17 +416,17 @@
|
||||
<para style="terp_tblheader_Details">Deductions</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ cont.advantages_net ]] [[ employee.company_id.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_9">[[ employee.advantages_net ]] [[ employee.company_id.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Net Salary</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ cont.net ]] [[ employee.company_id.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_9">[[ employee.net ]] [[ employee.company_id.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_space">
|
||||
<para style="terp_default_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="539.0" style="Table9">
|
||||
@@ -463,7 +463,7 @@
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="terp_default_9">[[repeatIn(cont.struct_id.line_ids,'line')]]</para>
|
||||
<para style="terp_default_9">[[repeatIn(employee.contract_id and employee.contract_id.struct_id and employee.contract_id.struct_id.line_ids or [],'line')]]</para>
|
||||
<blockTable colWidths="34.0,340.0,80.0,84.0" style="Table8">
|
||||
<tr>
|
||||
<td>
|
||||
@@ -473,7 +473,7 @@
|
||||
<para style="terp_default_9">[[ line.name ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(line.amount) or '']][[ get_line_amount_symbol(line.amount_type) ]]</para>
|
||||
<para style="terp_default_Right_9">[[ line.amount or '']] [[ get_line_amount_symbol(line.amount_type) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ get_line_amount_type(line.amount_type) ]]</para>
|
||||
@@ -489,7 +489,7 @@
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
<para style="terp_default_space">
|
||||
<para style="terp_default_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="539.0" style="Table10">
|
||||
@@ -536,7 +536,7 @@
|
||||
<para style="terp_default_9">[[ line1.name ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(line1.amount) ]]</para>
|
||||
<para style="terp_default_Right_9">[[ line1.amount ]] [[ get_line_amount_symbol(line1.amount_type) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ get_line_amount_type(line1.amount_type) ]]</para>
|
||||
|
||||
Reference in New Issue
Block a user