Skip to Content
Menu
This question has been flagged

Good afternoon,
I would like to create a model similar to the move_lines of stock.move (stock.picking) with some changes. I created a many2one field within the items_lines -> (page. Ex: <page string = "Initial Demand">) where I can choose the source, after choosing the source I would like to see next to the products in many2one that is Within the origin and next to the quantity according to the product that is in the request. Remembering that this model is new.

Can not do a domain for lack of necessary fields

My code:
Where i can not make it work:

   @api.one

    @api.depends('name')    

    def get_product(self):

        lines = self.env['sale.order.line'].search([('order_id','=',self.name.id)])

        for line in lines:

            product = line.product_id

        self.product_id = product 


        product_id = fields.Many2one('product.product', inverse='get_product')


My code all:

class stockentregaslines(models.Model):


    _name = 'stock.picking.entregas.lines'

    _description = 'Group Lines'

    _order = 'entregas_id, sequence, id'


    entregas_id = fields.Many2one('stock.picking.entregas', string=u'Nº Romaneio', required=True, ondelete='cascade', index=True, copy=False)

    sequence = fields.Integer(string='Sequence', default=10, index=True)

    name = fields.Many2one('sale.order', u'Saída', domain=lambda self: [('name', '=', self.env['stock.picking'].search([('state','=','assigned')]).mapped('origin'))])

    proceda = fields.Many2one('tabela.proceda', 'Ocorrência')


    @api.onchange('name')

    def get_out_entrega(self):

        for line in self:

            line.out_name = line.name.name

  

    out_name = fields.Char(string=u'Saída', compute='get_out_entrega')


    @api.one

    @api.depends('name')    

    def get_product(self):

        lines = self.env['sale.order.line'].search([('order_id','=',self.name.id)])

        for line in lines:

            product = line.product_id

        self.product_id = product 


        product_id = fields.Many2one('product.product', inverse='get_product')


    @api.one

    @api.depends('name')

    def get_qty_pedido(self):

        lines = self.env['sale.order.line'].search([('order_id','=',self.name.id)])

        qty = 0

        prod = None 

        for line in lines:

            qty = line.product_uom_qty

        self.produtos_qty = qty


    produtos_qty = fields.Char(string='Quantidade', compute='get_qty_pedido', store=True)


    @api.one

    @api.depends('name')

    def get_partner_id(self):

        line = self.env['sale.order'].search([('name','=',self.out_name)])

        partner = 0

        cep = 0

        street = None

        number = None

        state = None

        for lines in line:

            partner = lines.partner_id.id

            cep = lines.partner_id.zip

            street = lines.partner_id.street

            number = lines.partner_id.number

            state = lines.partner_id.state_id.name

        self.partner_id = partner

        self.zip = cep

        self.rua = street

        self.numero = number

        self.estado = state

        

    partner_id = fields.Many2one('res.partner',string='Cliente', compute='get_partner_id',store=True)

    zip = fields.Char(string=u'CEP', compute='get_partner_id', store=True)

    rua = fields.Char(string=u'Rua', compute='get_partner_id', store=True)

    numero = fields.Char(compute='get_partner_id', store=True)

    estado = fields.Char(String=u'Estado', compute='get_partner_id', store=True)

    completo= fields.Char(string=u'Rua')


    @api.one

    @api.depends('name')

    @api.constrains('name') 

    def _change_rua_name(self):

        if self.rua:

            self.completo = self.rua + ', ' + str(self.numero)

 

    # @api.multi

    # @api.depends('origem')

    # def method_validar(self):

    # self.env['stock.picking'].search([('origin','=', self.origem)]).do_new_transfer()

Avatar
Discard
Related Posts Replies Views Activity
1
Sep 23
1810
0
Mar 23
896
0
Mar 18
2065
1
Aug 24
241
3
May 20
9567