как добавить товар в строку заказа sale.subscription с помощью функции создания odoo 13 - PullRequest
2 голосов
/ 18 июня 2020

не могу понять, как добавить строку в sale.subscription с помощью функции create из другой модели

   subscription_pak = self.env['product.template'].search([('name', '=', pak_name),('recurring_invoice', '=', True)], limit=1)
   subscription_info = {
      'partner_id': vals['name'],
   }    
   add_subscription = self.env['sale.subscription'].create(subscription_info)    

   print('ssssss',subscription_pak)
   #works


   add_subscription_pak = {
     'product_id': subscription_pak.id,
     'partner_id': add_subscription.id,
   }    
   link_user_to_subscription = self.env['sale.subscription.line'].create(add_subscription_pak)

Я создаю подписку, но не могу найти поле для добавления продукта в строки

не могли бы вы помочь

Ответы [ 2 ]

2 голосов
/ 19 июня 2020

Благодаря odoo Mates на YouTube, это видео с канала odoo Mates Как обновить поле One2many из OnChange Of Field в Odoo и @ bigbear3001

это то, что сработало для меня

        supsctiption_pak = self.env['product.product'].search([('name', '=', pak_name),('recurring_invoice', '=', True)], limit=1)
        supsctiption_info = {
            'partner_id': vals['name'],
        }    
        add_supsctiption = self.env['sale.subscription'].create(supsctiption_info)

        supsctiption_to_pak = self.env['sale.subscription'].search([('partner_id', '=', vals['name'])], limit=1)


        add_supsctiption_pak = {
                'product_id': supsctiption_pak.product_variant_id.id,
                'uom_id': supsctiption_pak.uom_id.id,
                'price_unit': supsctiption_pak.list_price,
            }    
        supsctiption_to_pak.write({'recurring_invoice_line_ids':[(5, 0, 0),(0,0,add_supsctiption_pak)]})

1 голос
/ 19 июня 2020

ваш пакет subscription_pak имеет тип product.template (шаблон продукта), но для поля product_id sale.subscription.line требуется product.product (продукт (вариант)) (не может ссылаться на него, поскольку это Odoo Enterprise)

, так что это должно работать (если у вас есть только один вариант продукта):

   ...
   add_subscription_pak = {
     'product_id': subscription_pak.product_variant_id.id,
     'partner_id': add_subscription.id,
   }
   ...    

для нескольких вариантов:

   ...
   add_subscription_pak = {
     'product_id': subscription_pak.product_variant_ids.filter(lambda pv: pv.attribute == 'value')[0].id,
     'partner_id': add_subscription.id,
   }
   ...    
...