i am a beginner in eprnerp and I currently working on the implementation of the payroll module Moroccan openerp 6.0 ââon Windows XP, so everything was a wonder until the last step where I wanted to calculate the pay slip every time I Click on the button I get this error message:
Traceback (most recent call last): File "netsvc.pyo", line 489, in dispatch File "service\web_services.pyo", line 599, in dispatch File "osv\osv.pyo", line 122, in wrapper File "osv\osv.pyo", line 176, in execute File "osv\osv.pyo", line 167, in execute_cr File "C:\Program Files\OpenERP6.0\Server\addons\syst_hr_payroll_ma\hr_payroll_ma.py", line 154, in compute_all_lines File "osv\orm.pyo", line 181, in <lambda> File "C:\Program Files\OpenERP6.0\Server\addons\syst_hr_payroll_ma\hr_payroll_ma.py", line 674, in compute_all_lines File "C:\Program Files\OpenERP6.0\Server\addons\syst_hr_payroll_ma\hr_payroll_ma.py", line 518, in get_igr TypeError: 'bool' object is unsubscriptable
And here is the line of code concern:
def get_igr(self, cr, uid, ids, montant, cotisations): #print('fonction IGR') res = {} taux=0 somme=0 salaire_net_imposable = 0 pool = pooler.get_pool(cr.dbname) id_bulletin = ids[0] bulletin = pool.get('hr.payroll_ma.bulletin').browse(cr, uid, id_bulletin) personnes = bulletin.employee_id.chargefam logement = bulletin.employee_id.logement params = self.pool.get('hr.payroll_ma.parametres') ids_params = params.search(cr, uid, []) dictionnaire = params.read(cr, uid, ids_params[0]) fraispro = montant * dictionnaire['fraispro'] / 100 if fraispro < dictionnaire['plafond']: salaire_net_imposable = montant - fraispro - cotisations - logement else : salaire_net_imposable = montant - dictionnaire['plafond'] - cotisations - logement
objet_ir = self.pool.get('hr.payroll_ma.ir')
id_ir = objet_ir.search(cr, uid, [])
liste = objet_ir.read(cr, uid, id_ir, ['debuttranche', 'fintranche', 'taux', 'somme'])
for tranche in liste:
if(salaire_net_imposable >= tranche['debuttranche']/12) and (salaire_net_imposable < tranche['fintranche']/12):
taux = (tranche['taux'])
somme = (tranche['somme']/12)
ir_brute = (salaire_net_imposable * taux / 100) - somme
if((ir_brute - (personnes * dictionnaire['charge'])) < 0):
ir_net = 0
else:
ir_net = ir_brute - (personnes * dictionnaire['charge'])
res = {'salaire_net_imposable':salaire_net_imposable,
'taux':taux,
'ir_net':ir_net,
'credit_account_id':dictionnaire['credit_account_id'][0],
'frais_pro' : fraispro,
'personnes' : personnes
}
return res
So I apologize for the inconvenience and I hope you can help me thank you in advance
any help please ???
It would be good if you update your question which more code instead of just showing one line.
agree this is done and I hope you can help me :)
Your
dictionnaire
var is probabley a boolean (False or True)I can not see the additional code!
and now you can see it ??
yes it is true this boolean variable is but I do not know where is the problem exactly, is that I should not put type variable or there yardstick method for spesifique called boolean variable
Can you please point line 518 in the code of hr_payroll_ma.py?
yes lucio this is the line 518 of code : 'credit_account_id':dictionnaire['credit_account_id'][0],
What are you getting now? I can not see any updates in your question although you are constantly updating it!
yes I know there is no update in my question I wanted ONLY FOR that another person has come to see sorry