Я строю модуль (Odoo 8), моя цель - создавать предложения в порядке продажи, это предложение может установить цену за установку для определенного продукта или установить подарок к нулевой стоимости.Odoo 8 @ api.onchange функция not let update/Создано one2many значение
Я добавляю свою пользовательскую модель offer_лайн, в новую вкладку внутри заказа на продажу.
Определяется так:
class OfferSaleOrderLine(models.Model):
_name = 'offer.sale.order.line'
sale_order_ref = fields.Many2one('sale.order',ondelete='set null', string="Sale Order", index=True)
offer_ref = fields.Many2one('offer',ondelete='set null', string="Oferta", index=True)
is_active = fields.Boolean(default=True,string='Activo')
accumulations = fields.Float(digits=(6, 2), help="Acumulaciones")
class SaleOrder(models.Model):
_inherit = 'sale.order'
offers_lines = fields.One2many('offer.sale.order.line','sale_order_ref', string="Lineas de Ofertas")
У меня есть новый API OnChange метод внутри продажи заказа:
@api.onchange('offers_lines')
def _onchange_offers_lines(self):
я проверить это нужно применить предложение, и я добавить в offers_line новые строки из этого onchange функция, как это:
self.offers_lines += self.env['offer.sale.order.line'].new({'is_active': True, 'offer_ref': offer, 'accumulations' : is_offer})
Это прекрасно работает, линии создаются, добавляются на вкладку в форме и методах обмена является триггером.
Но проблема заключается в следующем, если я не попробовать то же самое с продажи строки заказа, не работает:
val = {
'name': gift_line.free_product.name,
'order_id': self.id,
'product_id': gift_line.free_product.id,
'product_uom_qty': gift_line.qty,
'product_uom': self.order_line[0].product_uom.id,
'price_unit': 0.0,
'state': 'draft',
}
self.order_line += self.env['sale.order.line'].new(val)
В журнале, эти строки создается, я могу видеть NEWID идентификатор создается, когда я Foreach сам .order_line
**** ЗАКАЗНЫЕ ЛИНИИ: ID:; Продукт: product.product (5152,); Кол-во: 6,0; Цена: 0.0; ****
, но элемент не создан на вкладке строки заказа на продажу, я не знаю, почему, мои пользовательские строки (One2many) созданы, но, sale_order_lines, с тем же кодом и одним большим полем тоже , не создается. У меня такая же проблема, если я попытаюсь установить price_unit в эту sale_order_lines. Журнал сообщает, что изменения добавляются, но не обновляются в форме. В следующем триггере обмена изменения исчезают.
Спасибо всем!
Thx por ответ, я прочитал это, но я не понимаю, почему работает с моей пользовательской моделью: offers_lines = fields.One2many ('offer.sale.order.line ',' sale_order_ref ', string = "Lineas de Ofertas"). Это тоже много, но работает правильно. – aparrac88
Я думаю, что уже есть onchange для order_line на sale.order. Возможно, что onchange блокирует ваш новый обмен? – CZoellner
Здравствуйте, спасибо за ответ, может быть, это правильно, я решил проблему с помощью кнопки (не автоматически, но кажется единственным способом). – aparrac88