Первое замечание по поводу OE 6.1+
и fields.function()
: он больше не принимает параметр method
[Серверная версия 3495, версия [email protected] и дополнения, версия 4844]. Поэтому, пожалуйста, больше не используйте параметр «метод»!
Теперь вы хотите рассчитать значение на основе предыдущего значения, поэтому вы можете использовать здесь параметр store=True
, который будет хранить ваше предыдущее значение в данных, теперь в вашем расчете для вашей записи, вы можете прочитать предыдущее значение и вычислить новое значение и вернуть его .
'testrest' : fields.function(get_reste, store=True, string='Restant',type='integer'),
def get_reste(self, cr, uid, ids, field_name, arg, context):
x = {}
for record in self.browse(cr, uid, ids ,context):
if record.statut != 'entree':
x[record.id]= record.testrest + record.entree_nbr
return x
Здесь преимущество строки будет заключаться в том, что вы можете использовать это значение где угодно за пределами OE или для какого-либо внешнего инструмента отчетности, и вы даже можете просмотреть это поле.
Надеюсь, это поможет.
Еще немного кода:
'price': fields.function(_price_get, method=True, string="Price", store=True),
person
ifixthat
schedule
03.07.2012