Am Dienstag, 22. März 2016 13:05:04 UTC+1 schrieb TPH:
>
> Hello,
>
> I just wrote this question in the German group, but I think here are much 
> more people. Ill will keep both articles updated.
>
> What is the best way to get product stock directly from database?
>
> For a webshop / ebay sync I need the stock for every product of the 
> warehouse. I have tried this with proteus, but this is not fast enough.
>
> So I am searching for an way, to get the actually stock of product on the 
> warehouse.
>
> I think I have to use  "stock_location" and "stock_move". Maybe someone 
> have already a snipped or can give me some hints.
>
> Thank you very much.
>
>
This is now my first draft to get the stock directly from database, first 
only for an specific product. Optimization tips are welcome. I don't have 
sub-locations so I don't have to search for other locations then parent = 
warehouse.

product_id = 7
warehouse_id = 22
stock = 0

# get all locations with parent warehouse_id
cursor.execute("SELECT * FROM stock_location WHERE parent = '%s'", 
[warehouse_id])
records = cursor.fetchall()
location_ids = [r["id"] for r in records]

# get all moves from or to warehouse
cursor.execute("SELECT * FROM stock_move WHERE product = %s AND state != 
'draft' AND (from_location = ANY(%s) OR to_location = ANY(%s))", (
            product_id,
            location_ids,
            location_ids
            ))
records = cursor.fetchall()

# calculate stock
for r in records:
    if r["to_location"] in location_ids:
        stock + r["internal_quantity"]
    if r["from_location"] in location_ids:
        stock - r["internal_quantity"]
print "stock:", stock


regards

-- 
You received this message because you are subscribed to the Google Groups 
"tryton" group.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tryton/2c797be7-2ae6-47e2-8e4f-6765d213af0b%40googlegroups.com.

Reply via email to