2016-10-31 2 views
1

Я пытаюсь реализовать этот сценарий по линиям счетов.Сумма счетов-фактур - Odoo v8

Предположим, у меня есть 50 продуктов в моей строке счета, 40 товаров подвержены влиянию налога, а 10 нет.

Таким образом, в результате моего счета, у меня есть два поля для вычисления этого

exe = fields.Float(string='Monto Exento', digits=dp.get_precision('Account'), 
    store=True, readonly=True, compute='extras', track_visibility='always') 

Если вернуть в общей сложности 40 налоговых пострадавших продуктов, и это поле

impo = fields.Float(string='Base Imponible', digits=dp.get_precision('Account'), 
    store=True, readonly=True, compute='extras', track_visibility='always') 

Если вернуться в общей сложности 10 других продуктов, которые не облагаются налогом.

Теперь я называю это из функции, и вычислить результаты:

@api.one 
@api.depends('invoice_line.price_subtotal', 'tax_line.amount') 
def extras(self): 
    self.exe = self.amount_untaxed + self.amount_tax 
    self.impo = self.amount_untaxed + self.amount_tax 

rec=0 

Но это не работает, как ожидалось, я не знаю, что может быть неправильно здесь, может быть, это из-за как я обрабатываю это на функции extras?

Это просто суммирует все, как общее количество всех линий.

EDIT

После @phillipstack ответа, я обновил свой код так:

@api.one 
@api.depends('invoice_line.price_subtotal', 'tax_line.amount') 
def extras(self): 
    self.exe = self.amount_untaxed + self.amount_tax if self.amount_tax and self.amount_tax > 0 else 0 
    self.impo = self.amount_untaxed + self.amount_tax if not self.amount_tax or self.amount_tax == 0 else 0 

Но на impo поле он просто суммирует все это, облагается налогом или нет, я стараюсь с одним необлагаемым продуктом, а один - с налогом.

exe правый не имеет никакого количества.

На странице exe должно быть указано общее количество необлагаемых товаров, а на impo должно отображаться общая сумма облагаемых налогом товаров.

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

+0

Не могли бы вы рассказать нам, на какой модели вы это пытаетесь? Кажется, будет account.invoice вместо sale.order? Итак, вы пытаетесь суммировать значения из строк счетов? – CZoellner

+0

Да, это учетная запись. Но это связано с тем, что налоги поступают оттуда, sale.order также берет с account.invoice – NeoVe

+0

Мне очень жаль, это на account.invoice, нужно изменить мой вопрос. Знаете, когда Вы так много работаете, что это происходит, lol – NeoVe

ответ

1

Вам необходимо предоставить оператор if, чтобы сообщить вашему сценарию, что он не суммируется, если он соответствует определенным критериям. Я не знаю достаточно о ваших требованиях, однако это может сработать. Или что-то вроде этого.

@api.one 
@api.depends('invoice_line.price_subtotal', 'tax_line.amount') 
def extras(self): 
    self.exe = self.amount_untaxed + self.amount_tax if self.amount_tax and self.amount_tax > 0 else 0 
    self.impo = self.amount_untaxed + self.amount_tax if not self.amount_tax or self.amount_tax == 0 else 0 
+0

Привет, большое спасибо, ну, он берет все и суммирует его на поле impo, я имею в виду, что он должен только получить результат от налогооблагаемой продукции на impo и untaxed на exe, я пытаюсь изменить его для достижения этого – NeoVe

+1

Вы всегда можете обновить свой вопрос, если вы сделаете некоторый прогресс, но вам нужна дополнительная помощь. –

+0

Прохладный, собираюсь сделать это, Большое спасибо – NeoVe