Hi there! We are on trial with Odoo now and I am trying to find out the logic of RPC so I can give my approval to the inventory department that we will use Odoo in the future. I have given a simple task to complete to move a single lot from one location to another though Immediate Internal Transfer.
Can you give me a general rule where I can find documentation for it? Everything that I found it's generic rules about the models' system of API. And I found nothing regarding "stock.picking" module creation.
Anyway, I complete the task, but I can't find the right way to validate the transfer. I am getting an error "cannot marshal None unless allow_none is enabled" in the end. This shows me that something wrong and I can find what exactly is wrong.
Please, advice. Thank you
here is my code
def swapLocation(self, uid, models, location_id, lot_id):
location_dest_id = 35
if location_id == 35:
location_dest_id = 36
product_id = 4
picking_id = models.execute_kw(db, uid, password, 'stock.picking', 'create', [{
'picking_type_id': 13,
'location_id': location_id,
'location_dest_id': location_dest_id,
'company_id': 1,
'move_type': 'direct',
'immediate_transfer': True,
'product_id': product_id
}])
stock_move_id = models.execute_kw(db, uid, password, 'stock.move', 'create', [{
'picking_type_id': 13,
'location_id': location_id,
'location_dest_id': location_dest_id,
'company_id': 1,
'procure_method': 'make_to_stock',
'has_tracking': 'serial',
'product_id': product_id,
'name': 'New Move',
'product_uom': 1,
'product_uom_qty': 1.0,
'picking_id': picking_id
}])
stock_move_line_id = models.execute_kw(db, uid, password, 'stock.move.line', 'create', [{
'location_id': location_id,
'location_dest_id': location_dest_id,
'company_id': 1,
'product_id': product_id,
'product_uom_id': 1.0,
'picking_id': picking_id,
'move_id': stock_move_id,
'lot_id': lot_id,
'qty_done': 1.0,
}])
try:
models.execute_kw(db, uid, password, 'stock.picking', 'button_validate', [picking_id], {})
except Exception as e:
print e
pass