0

In my method, I delete lines from stock.pickings and want to add different lines from my model. but i get an error AttributeError: 'stock.move' object has no attribute 'get'

@api.multi
        def _action_procurement_create(self):
            res = super(SaleOrderLine, self)._action_procurement_create()
            order_line_bom = self.env['sale.order.line.bom'].search([('sale_order_line_id', '=', self.id )])
            stock_move_lines = self.env['stock.move']
            created_stock_move_lines = self.env['stock.move']
            vals = {}
            for order in self.order_id:
                if self.product_id.bom_ids:
                    order.picking_ids.move_lines.state = 'draft'
                    for move_line in order.picking_ids.move_lines:
                        move_line.unlink()
                    for bom_line in order_line_bom:
                        vals['product_id'] = bom_line.product_id.id,
                        vals['product_uom'] = 1,
                        vals['location_id'] = 1,
                        vals['name'] = bom_line.product_id.name,
                        vals['location_dest_id'] = 1,
                        created_stock_move_lines  += stock_move_lines.create(vals)
                    order.create(stock_move_lines)
Chaban33
  • 1,362
  • 11
  • 38

2 Answers2

2

You have defined:

stock_move_lines = self.env['stock.move']

Then you try to pass it to create method:

order.create(stock_move_lines)

As documented in model.py

:param dict vals:
        values for the model's fields, as a dictionary::

            {'field_name': field_value, ...}

        see :meth:`~.write` for details
Kenly
  • 24,317
  • 7
  • 44
  • 60
1

Please try may it's help you :

@api.multi
def _action_procurement_create(self):
    res = super(SaleOrderLine, self)._action_procurement_create()
    order_line_bom = self.env['sale.order.line.bom'].search([('sale_order_line_id', '=', self.id )])
    stock_move_lines = self.env['stock.move']
    created_stock_move_lines = self.env['stock.move']
    vals = {}
    for order in self.order_id:
        if self.product_id.bom_ids:
            order.picking_ids.move_lines.state = 'draft'
            for move_line in order.picking_ids.move_lines:
                move_line.unlink()
                for bom_line in order_line_bom:
                    vals = {
                        'product_id': bom_line.product_id.id,
                        'product_uom': 1,
                        'location_id': 1,
                        'name': bom_line.product_id.name,
                        'location_dest_id': 1,
                         }
                    created_stock_move_lines  += stock_move_lines.create(vals)
                order.create(stock_move_lines)
Bhoomi Vaishnani
  • 718
  • 4
  • 19