Skip to Content
Menu
This question has been flagged
1 Reply
1767 Views

hi i have a model 'session.inventory' in it a many2one field location_id and one2many field session_lines_ids in relation to session.lines model in it many2one location_line_id field i need a domain that get me only the location from session.inventory related record and its children

for exam,ple location A has as children 1 location 1 and 2 and 3 so i select location a in session rec in it related session lines the locations I can get is only A, 1, 2, 3

 this is the code fro better understanding:

classInventorySession(models.Model):
_name = "inventory.session"

_inherit = ['mail.thread', 'mail.activity.mixin']

_description = "Session d'inventaire"
name = fields.Char("Nom", required=True)

company_id = fields.Many2one('res.company', string ='Société', readonly=True, default=lambdaself: self.env.company)

state = fields.Selection( [('draft', 'Broullion'), ('running', 'En cours'), ('valid', 'Validé')],default="draft",string = "État" )

inventory_date = fields.Date("Date d'inventaire", default = date.today())

location_visib = fields.Boolean(dafault = False)

inventory_type = fields.Selection( [('all_product', 'Tous les articles'),#('product_category', "Une catégorie d'articles"), ('one_product', 'Une article seulement'), ('select_product_manually', 'Sélectionner les produits manuellement')],string = "Type d'inventaire" )

product_id = fields.Many2one('product.product', string='Article')

category_id = fields.Many2one('product.category', string='Categorie')

location_id = fields.Many2one('stock.location', string='Emplacement de stock')

user_ids = fields.Many2many('res.users', string='Utilisateur', required=True)

inventory_session_ids = fields.One2many('inventory.session.lines','inventory_session_id', string="Ligne des session d'inventaire", required=True)

classInventorySessionLines(models.Model):
_name = "inventory.session.lines"

_description = "Ligne de session d'inventaire"


company_id = fields.Many2one('res.company', string ="Société", readonly=True, default=lambdaself: self.env.company)

inventory_session_id = fields.Many2one('inventory.session', string="Session d'inventaire")

category_id = fields.Many2one('product.category', string="Category")

product_line_id = fields.Many2one('product.product', string='Article')

serial_number_id = fields.Many2one('stock.production.lot', string='Lot/numéro de série')

location_line_id = fields.Many2one('stock.location',domain=_get_domain,string='Emplacement')

user_line_id = fields.Many2one('res.users', string='Utilisateur',default = lambdaself: self.env.user)

user_group = fields.Char(compute = "_compute_group")

is_serial_required = fields.Boolean(compute = "_compute_required_serial")

section = fields.Char("Section")

qty_in_stock = fields.Float(string='En stock', #compute="_compute_qty_in_stock" )

counted_qty = fields.Float(string='Comptés')


Avatar
Discard
Best Answer

Hello , 

You can try below code maybe it's resolve your issue:

inventory_session_ids = fields.One2many('inventory.session.lines','inventory_session_id', string="Ligne des session d'inventaire", required=True, domain = [('inventory_session_id','=',self.id)])
Avatar
Discard
Related Posts Replies Views Activity
2
Mar 24
574
0
Feb 24
1202
0
Jan 23
708
0
Aug 22
1054
1
Jul 22
2724