У меня возникла проблема, когда я унаследовал класс с sale.order, а другой класс - это просто __name или связанный с ним.
class module_A(models.Model):
_name='new.module_a'
sale_id = fields.Many2one(comodel_name='sale.order')
currency_id = fields.Many2one('res.currency', string="currency")
price_value = fields.Monetary(related="sale_id.total_price", string="Initial Price value",
currency_field="currency_id")
class module_B(models.Model):
_inherit = 'sale.order'
module_id = fields.One2many(string="module A",
comodel_name='new.module_a', inverse_name='sale_id')
total_price = fields.Monetary(string="Price Initial", store=True, readonly=True, compute='_amount_all',
tracking=4)
amount_untaxed = fields.Monetary(string="Untaxed Amount", store=True, readonly=True, compute='_amount_all',
tracking=5)
amount_tax = fields.Monetary(string="Taxes", store=True, readonly=True, compute='_amount_all')
@api.depends('order_line.price_total')
def _amount_all(self):
for order in self:
amount_untaxed = amount_tax = 0.0
for line in order.order_line:
amount_untaxed += line.price_subtotal
amount_tax += line.price_tax
total_price = amount_tax + amount_untaxed
print(total_price)
order.update({
'amount_untaxed': amount_untaxed,
'amount_tax': amount_tax,
'amount_total': amount_untaxed + amount_tax,
'total_price': amount_untaxed + amount_tax,
})
Проблемы: 1. В древовидном представлении price_value равен 0. Это означает, что он не получил значения из total_price после того, как связал его с sale_id. Я не знаю почему.
но когда я разделил его с tree_view. Цена указана.
xml:
<field name="module_id"/>
tree view
control
field name="price_value" <- field in module A
<group>
<field name="total_price"/> <- field in module B
Примечание: поля не могут быть взаимозаменяемы, так как total_price будет искать унаследованную продажу .order, пока value_value не существует в module_b.
Если я суммирую все значения, мне также понадобятся значения из класса module_A и поместим его в module_B. Это большая проблема, так как она не будет работать, потому что оба используют одни и те же столбцы и таблицы.
Я должен добавить промежуточный итог к каждому элементу в древовидном представлении, в котором я должен взять задачу № 2. Пример вычисления общих значений в классе module_A и получения значений от A до B, чтобы я мог отобразить их в поле зрения.
Начальное значение цены по-прежнему равно нулю.