This question has been flagged

Hi, i created few fields to my account.invoice, and i am trying to update these fields with a function. I get this error: AttributeError: 'bool' object has no attribute 'get' openerp. Please help its really very urgent, account_invoice.py", line 844, in button_reset_taxes. My fields:

'vat13_5':fields.float('13.5%',digits_compute=dp.get_precision('Account')),
'vat5':fields.float('5%',digits_compute=dp.get_precision('Account')),
'others':fields.float('Others',digits_compute=dp.get_precision('Account')),
'sales_vat13_5':fields.function(_tax_base_amount,

type= 'float',string = 'Sales 13.5%', digits_compute=dp.get_precision('Account'),method = True, store = True), 'sales_vat5':fields.function(_tax_base_amount, type= 'float',string = 'Sales 5%', digits_compute=dp.get_precision('Account'),method = True, store = True), 'sales_others':fields.function(_tax_base_amount, type= 'float',string = 'Sales Others', digits_compute=dp.get_precision('Account'),method = True, store = True),

the fields vat13_5, vat5, and others already have values in them.

the function which i am using :

> def
> _tax_base_amount(self,cr,uid,ids,name,args,context=None):
>     res = {}
>     tax_obj = self.pool.get('account.invoice.tax')
>     for invoice in self.browse(cr,uid,ids,context=context):
>        res[invoice.id] = {
>                          'sales_vat13_5':0.0,
>                          'sales_vat5':0.0,
>                             'sales_others':0.0,
>                        }
>         base1 = 0.0
>         base2 = 0.0
>         base3 = 0.0
>         name13_5 = 'Vat13.5%'
>         name13 = '13.5% - Vat13.5% E'
>         name5 = 'Vat  5 %'
>         name5E = '5% E - Vat 5% E'
>         namecst2 = 'CST 2% '
>         namecst2E = '2% - CST 2% E'
>         namevat2 = 'Vat 2% ( 3B )'
>         namevat2E = '2% - Vat 2% ( 3B ) E'
>         namecst5 = 'CST 5% Without form C '
>         namecst5E = '5%  - CST 5% Without Form C E'
>         namecst13_5 = 'CST 13.5% Without form C '
>         namecst13_5E = '13.5%  - CST 13.5% Without Form C E'
>         namecst= '5% - CST 13.5% Without Form C E '
>         if invoice.vat13_5:                
>             cr.execute('select base_amount from account_invoice_tax
> where invoice_id = %s and name in
> (%s,%s)',(invoice.id,name13_5,name13))
>             base1 = cr.fetchall()[0]
>             #raise osv.except_osv(_('Message'), _(base1))
>             res[invoice.id]['sales_vat13_5'] =
> base1
>         if invoice.vat5:        
>             cr.execute('select base_amount from account_invoice_tax
> where invoice_id = %s and name in
> (%s,%s)',(invoice.id,name5,name5E))
>             base2 = cr.fetchall()[0]
>             #raise osv.except_osv(_('Message'), _(base2))
>             res[invoice.id]['sales_vat5'] = base2
>         if invoice.others:
>             cr.execute('select base_amount from account_invoice_tax
> where invoice_id = %s and name in
> (%s,%s,%s,%s,%s,%s,%s,%s,%s)',(invoice.id,namecst2,namecst2E,namevat2,namevat2E,namecst5,namecst5E,namecst13_5,namecst13_5E,namecst))
>             taxes = cr.fetchall()               
>             for t in taxes:
>                 base3 += t[0]
>             #raise osv.except_osv(_('Message'), _(base3))
>             res[invoice.id]['sales_others'] =
> base3
>         cr.execute('update account_invoice set sales_vat13_5=%s,
> sales_vat5=%s, sales_others=%s where
> id=%s',(base1,base2,base3,invoice.id))
>     return True
Avatar
Discard

Can you post the whole traceback of the error?

Author

hey i got my error corrected i just changed it to return res and i am sorted. Thanks anyways.