Skip to Content
Menu
This question has been flagged
2 Replies
7472 Views

hello,

i want to update my stock.move data by the new data appeared in my wizard i did this code but it doesnt work thanks to help me :

class StockPickingSplitWizard(models.TransientModel):
_name = "stock.picking.split.wizard"

line_ids = fields.One2many('stock.picking.split.wizard.line', 'wizard_id', string='Lines')


===== this s the default function to get the current values=========
@api.model
def default_get(self, fields):
ctx = self.env.context.copy()
picking_ids = ctx.get('active_ids', [])
stock_picking_obj = self.env['stock.picking']
lines = []
for picking in stock_picking_obj.browse(picking_ids):
for move in picking.move_lines:
lines.append({
'product_id': move.product_id.id,
'location_id': move.location_id.id,
'location_dest_id': move.location_dest_id.id,
'move_id': move.id,
'product_uom_qty': move.product_uom_qty,
'product_uom': move.product_uom.id

})
defaults = super(StockPickingSplitWizard, self).default_get(fields)
defaults['line_ids'] = lines
return defaults



======this my function to update the old by the new in the wizard =====
@api.multi
def action_transferer(self):
ctx = self.env.context.copy()
picking_ids = ctx.get('active_ids', [])
stock_picking_obj = self.env['stock.picking']
for line in self.line_ids:
for picking in stock_picking_obj.browse(picking_ids):
for move in picking.move_lines:
move.update({
'product_id': line.product_id.id,
'location_id': line.location_id.id,
'location_dest_id': line.location_dest_id.id,
'product_uom_qty': line.product_uom_qty,
})
move.action_assign()



class StockPickingSplitWizardLine(models.TransientModel):
_name = 'stock.picking.split.wizard.line'

move_id = fields.Many2one('stock.move', 'Stock Move')
product_id = fields.Many2one('product.product', 'Article')
product_uom_qty = fields.Float(u'Quantité', digits_compute=dp.get_precision('Product Unit of Measure'))
location_id = fields.Many2one('stock.location', 'Source Location', select=True)
location_dest_id = fields.Many2one('stock.location', 'Destination Location', required=True)
product_uom = fields.Many2one('product.uom', 'Unit of Measure', required=True)
wizard_id = fields.Many2one('stock.picking.split.wizard', 'Wizard')

Avatar
Discard
Best Answer

You are adding the values to a one2many field in a wrong way, use the following code for the default get method in 'StockPickingSplitWizard' class.

@api.model
def default_get(self, fields):
ctx = self.env.context.copy()

picking_ids = ctx.get('active_ids', [])
stock_picking_obj = self.env['stock.picking']
lines = []
for picking in stock_picking_obj.browse(picking_ids):
for move in picking.move_lines:
lines.append(0,0,{
'product_id': move.product_id.id,
'location_id': move.location_id.id,
'location_dest_id': move.location_dest_id.id,
'move_id': move.id,
'product_uom_qty': move.product_uom_qty,
'product_uom': move.product_uom.id

})
defaults = super(StockPickingSplitWizard, self).default_get(fields)
defaults['line_ids'] = lines
return defaults

Avatar
Discard
Author Best Answer

Hi thanks for replying. when i update the default function i got this error now.

Traceback (most recent call last):
File "C:\Program Files (x86)\Odoo 8.0-20141128\server\.\openerp\http.py", line 517, in _handle_exception
File "C:\Program Files (x86)\Odoo 8.0-20141128\server\.\openerp\http.py", line 535, in dispatch
File "C:\Program Files (x86)\Odoo 8.0-20141128\server\.\openerp\http.py", line 294, in _call_function
File "C:\Program Files (x86)\Odoo 8.0-20141128\server\.\openerp\service\model.py", line 113, in wrapper
File "C:\Program Files (x86)\Odoo 8.0-20141128\server\.\openerp\http.py", line 291, in checked_call
File "C:\Program Files (x86)\Odoo 8.0-20141128\server\.\openerp\http.py", line 751, in __call__
File "C:\Program Files (x86)\Odoo 8.0-20141128\server\.\openerp\http.py", line 387, in response_wrap
File "C:\Program Files (x86)\Odoo 8.0-20141128\server\openerp\addons\web\controllers\main.py", line 949, in call_kw
File "C:\Program Files (x86)\Odoo 8.0-20141128\server\openerp\addons\web\controllers\main.py", line 941, in _call_kw
File "C:\Program Files (x86)\Odoo 8.0-20141128\server\.\openerp\api.py", line 237, in wrapper
File "C:\Program Files (x86)\Odoo 8.0-20141128\server\.\openerp\api.py", line 332, in old_api
File "C:\Program Files (x86)\Odoo 8.0-20141128\server\openerp\addons\stock_force_assign\wizard\models.py", line 41, in default_get
TypeError: append() takes exactly one argument (3 given)

 Thanks for helping me




Avatar
Discard
Related Posts Replies Views Activity
1
Jan 22
2905
3
Jun 19
4128
1
Jun 16
7236
1
Mar 15
5596
0
Oct 24
134