Overslaan naar inhoud
Menu
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Deze vraag is gerapporteerd
2 Antwoorden
5221 Weergaven

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


Avatar
Annuleer
Auteur Beste antwoord

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

Avatar
Annuleer
Beste antwoord

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


Avatar
Annuleer
Gerelateerde posts Antwoorden Weergaven Activiteit
2
jan. 16
6362
1
nov. 21
16574
2
mei 25
4658
1
aug. 21
4033
2
mrt. 15
9517