2013-07-13 5 views
0

Мне нужно подсчитать и показать количество элементов, например purchase.order.line, и показать их в поле типа integer.Счетчик строк Openerp - Элемент Пользовательский модуль

Например, в purchase.order я добавляю 13 единиц или продуктов; это поле будет храниться, а затем показывать за пределами purchase.order.line количество предметов этой покупки.

Я смотрел в stackexchange и в книгах openerp, но не повезло найти пример такой функции.

Любой модуль или существующий функционал, который я должен искать?

Заранее спасибо

ответ

1

Я не совсем уверен, что вы просите. Вы имеете в виду, что если у вас есть заказ на поставку с 13 строками, вы хотите, чтобы поле в заказе на поставку отображало сумму полей количества в 13 строках заказа?

Если это так, вам необходимо расширить модель покупки.порядка и добавить функциональное поле, которое будет проходить через строки заказа и общее количество.

Ваша колонка будет:

'total_quantity': fields.function(_get_total_quantity, type='float', method = True, string = 'Total Quantity', readonly = True), 

Ваш метод будет:

def _get_total_quantity(self, cr, uid, ids, field, args, context = None): 
    res = {} 
    for po in self.browse(cr, uid, ids, context = context): 
     res[po.id] = sum([x.quantity for x in po.order_line]) 

    return res 

Пожалуйста, убедитесь, что имя one2many на purchase.order для линий заказа на поставку "Order_Line". Я делаю это из памяти, и я не могу вспомнить имя столбца.

+0

Да, спасибо, но мне это нужно именно для модуля custum, похожего на buy.order, сведенного к минимуму, поэтому я думаю, что я собираюсь изменить «order_line» в соответствии с моей «custom_line», это правильно? – NeoVe

+0

И да, «order_line» - это поле в файле purchase.py – NeoVe

+0

Nevermind, я просто сделал замену, назначил переменную «cc» вместо «po» и заменил order_line для Cert_ids, cert_ids - мой эквивалент order_line , большое большое спасибо! – NeoVe

Смежные вопросы