跳至内容
菜单
此问题已终结

Hi i'm making a inheritance module from sale. I need to make an order line that only shows up the related product from Sale order type

master data model

class SalesOrderType(models.Model):
    _name = 'sales.order.type'
    _description = 'Sales Order Type'
    name = fields.Char(string='Type Name', required=True)
    product_ids = fields.Many2many('product.product', string='Related Products')

for the selection form model

class SaleOrder(models.Model):
    _inherit = 'sale.order'
    order_type_id = fields.Many2one('sales.order.type', string='Order Type')

    @api.onchange('order_type_id')
    def _onchange_order_type(self):
        print("Order Type ID:", self.order_type_id.id)
        for line in self.order_line:
            line.order_type_id = self.order_type_id

for the order lines model

class SaleOrderLine(models.Model):
    _inherit = 'sale.order.line'
    @api.onchange('order_type_id')
    def _onchange_order_type(self):
        if self.order_type_id:
            # Apply domain to product_id field based on order_type_id
            return {
                'domain': {
                    'product_id': [('id', 'in', self.order_type_id.product_ids.ids)]
                }
            }

The view


   
       
       
            sale.order.form.inherit
            sale.order
           
           
               
               
                   
               
               
               
                    {'default_order_type_id': order_type_id}
               
           
       
   

These all didn't work. What should i do? im so confused...

形象
丢弃
相关帖文 回复 查看 活动
1
9月 24
41
2
10月 16
8460
2
4月 25
938
1
11月 24
1616
2
9月 24
1057