Skip to Content
Menú
This question has been flagged

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...

Avatar
Descartar
Related Posts Respostes Vistes Activitat
1
de set. 24
41
2
d’oct. 16
8530
2
d’abr. 25
971
1
de nov. 24
1651
2
de set. 24
1076