跳至内容
菜单
此问题已终结

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


形象
丢弃
编写者 最佳答案

Hi Ray! Does it mean that there is no way to get the answer unless doing reverse engineering? 

形象
丢弃
最佳答案

Some people find it easier to understand the API calls by turning on logging so they can see, in real-time, what Odoo is doing as it creates and processes different kinds of documents.

https://www.odoo.com/documentation/13.0/reference/cmdline.html#logging


形象
丢弃
相关帖文 回复 查看 活动
2
1月 16
6379
1
11月 21
16626
2
5月 25
4715
1
8月 21
4062
2
3月 15
9532