Forum Discussion

reynaldo_malave's avatar
reynaldo_malave
Helper III
2 years ago
Solved

Inventory Repostion for Picking

Hi guys,

 

I been stuck on this for a couple of days now. Using power query I am working on a picking line inventory restocking. The whole idea is to get products on the picking line on certain order.

 

This is my original table :

ProductoIdAvailableRestockingNeed
11150160
11

1200

160
112500160

 

This is what i am looking for: 

 

ProductoIdAvailableRestockingRestock
11150160150
1112001010
112500null 

 

I am looking to get back the Restock column.

 

I any of you can help out here it would be great. 

 

I have been trying to adapt the solution

 

thanks.

 

Reynaldo

  • hi, reynaldo_malave try this

    let
        Source = your_table,
        recs = List.Buffer(Table.ToRecords(Source)),
        count = List.Count(recs),
        g = 
            List.Generate(
                () => 
                    [i = 0, 
                    Productold = recs{0}[ProductoId], 
                    Available = recs{0}[Available], 
                    Restocking = recs{0}[RestockingNeed], 
                    Restock = List.Min({Restocking, Available})],
                (x) => x[i] < count,
                (x) => 
                    [i = x[i] + 1,
                    Productold = recs{i}[ProductoId],
                    Available = recs{i}[Available],
                    Restocking = List.Max({0, x[Restocking] - x[Restock]}),
                    Restock = List.Min({Available, Restocking})]
            ),
        z = Table.RemoveColumns(Table.FromRecords(g), {"i"})
    in
        z

     

2 Replies

  • hi, reynaldo_malave try this

    let
        Source = your_table,
        recs = List.Buffer(Table.ToRecords(Source)),
        count = List.Count(recs),
        g = 
            List.Generate(
                () => 
                    [i = 0, 
                    Productold = recs{0}[ProductoId], 
                    Available = recs{0}[Available], 
                    Restocking = recs{0}[RestockingNeed], 
                    Restock = List.Min({Restocking, Available})],
                (x) => x[i] < count,
                (x) => 
                    [i = x[i] + 1,
                    Productold = recs{i}[ProductoId],
                    Available = recs{i}[Available],
                    Restocking = List.Max({0, x[Restocking] - x[Restock]}),
                    Restock = List.Min({Available, Restocking})]
            ),
        z = Table.RemoveColumns(Table.FromRecords(g), {"i"})
    in
        z