ส่วนของโค้ด method get_income ใน .py
โค้ด: เลือกทั้งหมด
def get_income(self, obj):
payslip_line = self.pool.get('hr.salary.rule.category')
res = []
ids = []
income = []
for id in range(len(obj)):
if obj[id].appears_on_payslip == True:
ids.append(obj[id].id)
if ids:
res = payslip_line.browse(self.cr, self.uid, ids)
income.append(res[ids].id)
if income == 2:
return income[0]
โค้ด: เลือกทั้งหมด
</blockTable>
<blockTable colWidths="150.0,150.0,150.0" style="Table3">
<tr>
<td>
<para style="P1"> income </para>
</td>
<td>
<para style="P1"> Deduction </para>
</td>
<td>
<para style="P1"> </para>
</td>
</tr>
</blockTable>
<section>
<para style="P1">[[repeatIn(get_income(o.line_ids),'bb') ]]</para>
<blockTable colWidths="170.0,150.0" style="Table3">
<tr>
<td>
<para style="P1"> [[ bb.name ]] </para>
</td>
<td>
<para style="P1"> [[ bb.code ]] </para>
</td>
</tr>
</blockTable>
</section>
โค้ด: เลือกทั้งหมด
2017-08-08 11:49:46,706 20986 INFO demo_mdsoft werkzeug: 127.0.0.1 - - [08/Aug/2017 11:49:46] "POST /web/action/load HTTP/1.1" 200 -
2017-08-08 11:49:46,811 20986 ERROR demo_mdsoft openerp.tools.safe_eval: Cannot eval "repeatIn(get_income(o.line_ids),'bb')"
Traceback (most recent call last):
File "/openerp7/openerp7-server/openerp/tools/safe_eval.py", line 288, in safe_eval
return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict)
File "", line 1, in <module>
File "/home/com010/PycharmProjects/mdsoft_module/mdsoft_salary_slip_print/report/mdsoft_salary_slip_print_report.py", line 118, in get_income
income.append(res[ids].id)
TypeError: list indices must be integers, not list
2017-08-08 11:49:46,811 20986 ERROR demo_mdsoft openerp.service.web_services: Exception: list indices must be integers, not list
Traceback (most recent call last):
File "/openerp7/openerp7-server/openerp/service/web_services.py", line 718, in go
(result, format) = obj.create(cr, uid, ids, datas, context)
File "/openerp7/openerp7-server/openerp/report/report_sxw.py", line 451, in create
fnct_ret = fnct(cr, uid, ids, data, report_xml, context)
File "/openerp7/openerp7-server/openerp/report/report_sxw.py", line 520, in create_source_pdf
return self.create_single_pdf(cr, uid, ids, data, report_xml, context)
File "/openerp7/openerp7-server/openerp/report/report_sxw.py", line 542, in create_single_pdf
pdf = create_doc(etree.tostring(processed_rml),rml_parser.localcontext,logo,title.encode('utf8'))
File "/openerp7/openerp7-server/openerp/report/interface.py", line 206, in create_pdf
obj.render()
File "/openerp7/openerp7-server/openerp/report/render/render.py", line 59, in render
self._result = self._render()
File "/openerp7/openerp7-server/openerp/report/render/rml.py", line 41, in _render
return rml2pdf.parseNode(self.rml, self.localcontext, images=self.bin_datas, path=self.path,title=self.title)
File "/openerp7/openerp7-server/openerp/report/render/rml2pdf/trml2pdf.py", line 1044, in parseNode
r.render(fp)
File "/openerp7/openerp7-server/openerp/report/render/rml2pdf/trml2pdf.py", line 331, in render
pt_obj.render(el)
File "/openerp7/openerp7-server/openerp/report/render/rml2pdf/trml2pdf.py", line 1015, in render
fis += r.render(node_story)
File "/openerp7/openerp7-server/openerp/report/render/rml2pdf/trml2pdf.py", line 906, in render
return process_story(node_story)
File "/openerp7/openerp7-server/openerp/report/render/rml2pdf/trml2pdf.py", line 895, in process_story
for node in utils._child_get(node_story, self):
File "/openerp7/openerp7-server/openerp/report/render/rml2pdf/utils.py", line 48, in _child_get
for ctx in eval(n.get('rml_loop'),{}, self.localcontext):
File "/openerp7/openerp7-server/openerp/tools/safe_eval.py", line 288, in safe_eval
return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict)
File "", line 1, in <module>
File "/home/com010/PycharmProjects/mdsoft_module/mdsoft_salary_slip_print/report/mdsoft_salary_slip_print_report.py", line 118, in get_income
income.append(res[ids].id)
TypeError: list indices must be integers, not list
2017-08-08 11:49:47,032 20986 ERROR demo_mdsoft openerp.netsvc: list indices must be integers, not list
(<type 'exceptions.TypeError'>, TypeError('list indices must be integers, not list',), <traceback object at 0x7f2f2906d9e0>)
Traceback (most recent call last):
File "/openerp7/openerp7-server/openerp/netsvc.py", line 306, in dispatch_rpc
result = ExportService.getService(service_name).dispatch(method, params)
File "/openerp7/openerp7-server/openerp/service/web_services.py", line 660, in dispatch
res = fn(db, uid, *params)
File "/openerp7/openerp7-server/openerp/service/web_services.py", line 766, in exp_report_get
return self._check_report(report_id)
File "/openerp7/openerp7-server/openerp/service/web_services.py", line 744, in _check_report
netsvc.abort_response(exc, exc.message, 'warning', exc.traceback)
File "/openerp7/openerp7-server/openerp/netsvc.py", line 81, in abort_response
raise openerp.osv.osv.except_osv(description, details)
except_osv: (u'list indices must be integers, not list', (<type 'exceptions.TypeError'>, TypeError('list indices must be integers, not list',), <traceback object at 0x7f2f2906d9e0>))
2017-08-08 11:49:47,033 20986 INFO demo_mdsoft werkzeug: 127.0.0.1 - - [08/Aug/2017 11:49:47] "POST /web/report HTTP/1.1" 500 -