Я создаю функцию в модуле счета. Что вам нужно сделать, так это сделать так, чтобы эта линейка продуктов функции была равна счету-фактуре и возвращала сумму за продукт. Это лучше поясняется на следующем изображении:
Например, продукт "Aceite Hidraulico" указан в счете 3 раза. Тогда функция должна вернуть 3 для этого продукта.
Вот функция, которая есть у меня в account.invoice.py:
total_quantity = fields.Integer(compute='count_invoice_invoice', string = 'Cantidad Productos', readonly = True, store=True)
@api.one
@api.depends('invoice_line_ids.product_id')
def count_invoice_invoice(self):
res = {}
counter = 0
for po in self.invoice_line_ids:
for product in po.product_id.id:
counter += 1
res [self.total_quantity] = counter
return res
Чтобы функция различала один продукт от другого, я использую модель поля id product.product. Но когда я пытаюсь создать счет, Odoo показывает мне сообщение, что поля типа int не могут быть итерируемыми. Это проблема, потому что поле id для различения продуктов является целым числом.
Что я должен делать?
Это сообщение показывает Odoo:
for product in po.product_id.id:
TypeError: объект
int
не является итерируемым
Большое спасибо за вашу помощь и потраченное время. Я ценю любые предложения или советы, чтобы получить то, что вы хотите сделать.