Buenas tardes, estoy tratando de modificar el módulo analytic_product de la
versión 3.4, que ya he utilizado anteriormente, para que funcione en la
versión 3.8, al ejecutarlo previo a hacer cualquier modificación me arroja
el siguiente error:
Traceback (most recent call last):
File "/home//trytond/protocols/dispatcher.py", line 167, in dispatch
result = rpc.result(meth(inst, *c_args, **c_kwargs))
File "/home//trytond/model/modelview.py", line 649, in on_change
method()
File "/home//trytond/model/modelview.py", line 84, in wrapper
result = func(self, *args, **kwargs)
File "/home//trytond/model/fields/field.py", line 89, in wrapper
return func(self, *args, **kwargs)
File "/home//trytond/modules/sale_pos/sale.py", line 292, in
on_change_product
super(SaleLine, self).on_change_product()
File "/home//trytond/model/modelview.py", line 84, in wrapper
result = func(self, *args, **kwargs)
File "/home//trytond/model/fields/field.py", line 89, in wrapper
return func(self, *args, **kwargs)
File "/home//trytond/modules/analytic_product/product.py", line 260, in
on_change_product
res[key] = account.id
TypeError: 'sale.line' object does not support item assignment
Esta es la parte del código donde está arrojándome el error:
class AnalyticProductMixin:
@fields.depends('product')
def on_change_product(self):
try:
res = super(AnalyticProductMixin, self).on_change_product()
except:
res = {}
if self.product and self.product.analytic_accounts:
for account in self.product.analytic_accounts.accounts:
key = 'analytic_account_%d' % account.root.id
res[key] = account.id
return res
Haciendo un poco de debugeo lo que puedo notar al correr este código en la
versión 3.4 es que "res" trae la siguiente información:
{'unit_digits': 2, 'description': u'MELOXICAM 15MG C/10 TAB',
'gross_unit_price': Decimal('10.00'), 'taxes': [5],
'gross_unit_price_wo_round': Decimal('10.0000'), 'discount': Decimal('0'),
'amount': Decimal('10.00'), 'unit_price': Decimal('10.0000'), 'cost_price':
Decimal('5.00'), 'unit': 46, 'unit.rec_name': u'CAJA C/10'}
Incluso despues de asignar el res[key] = account.id veo que también ya le
agregó el valor
{'unit_digits': 2, 'description': u'MELOXICAM 15MG C/10 TAB',
'gross_unit_price': Decimal('10.00'), 'taxes': [5],
'gross_unit_price_wo_round': Decimal('10.0000'), 'discount': Decimal('0'),
'amount': Decimal('10.00'), 'unit_price': Decimal('10.0000'),
'analytic_account_1': 8, 'cost_price': Decimal('5.00'), 'unit': 46,
'unit.rec_name': u'CAJA C/10'}
Mientras que ahora al correrlo en la versión 3.8 "res" trae la siguiente
información:
sale.line,-1
Supongo que esta es la razón, alguna idea de que debo de ajustar o
considerar para poderle asignar el valor de la cuenta analítica que trae
asignada el producto?
De antemano gracias