Hide Entire Warehouse From Sales

We have an entire warehouse that is not able to be used for sales. Is there an easy way to toggle off an entire warehouse so Sales can’t see the quantity on hand of parts in bins in that warehouse?

I created a DMT of all of the bins in a warehouse, but if there is Quantity on hand in a bin it won’t let me set the Non-Nettable flag as TRUE.

I really don’t want to adjust out, and then adjust in.

I could do moves out of the normal locations into 1 non-nettable bin, and then do moves back…

There has got to be a better way.

Unfortunately there is no other way to change that profile. You can create a DMT file to adjust them out and then reuse it to put them back in.

300k locations. ugh.

Are you trying to hide the actual QOH in that warehouse from order entry folks, or prevent shipments from it?

And wouldn’t making bins non-netable affect MRP and production?

It is a finished goods only warehouse that has lost the ability to ship.

So you make to stock, with the FG being received into a warehouse that you don’t allow shipments from(call this warehouse FGWH). When a shipment needs to be made, an inventory transfer from FGWH to a shipping warehouse(SHWH) is made and the shipment is made from there.

So at order entry time there might be QOH in FGWH, and none in SHWH. And the order needs to see 0 QOH and still specify that it should ship from SHWH.

That right?

More simple than that. Say our finished goods warehouse is just purchased parts we sell on. Don’t make, no where used. Kinda like distribution.
Now say that warehouse is flooded and no one can get to it and it is going to be months.

How do you keep sales from selling it.

Nevermind - I had a question and idea but testing it did not work out the way I wanted.

Would this be sufficient?

Hide that Qty from Order Entry?

//Method Directive - Post Processing
//SalesOrder.ChangePartNumMaster

string badWareHouse = "FIN";

decimal qtyInBadWareHouse = 0;

try
{
    qtyInBadWareHouse = Db.PartBin.Where(pb => pb.PartNum == partNum && pb.WarehouseCode == badWareHouse).Select(pb => pb.OnhandQty).Sum();
} catch {}


foreach(var row in ds.OrderDtl.Where(r => r.PartNum == partNum))
{
    row.OnHandQuantity = row.OnHandQuantity - qtyInBadWareHouse; 
}

//Method Directive - Post Processing
//SalesOrder.GetByID

string badWareHouse = "FIN";

decimal qtyInBadWareHouse = 0;


foreach(var row in result.OrderDtl)
{

  string partNum = row.PartNum;

  try
  {
      qtyInBadWareHouse = Db.PartBin.Where(pb => pb.PartNum == partNum && pb.WarehouseCode == badWareHouse).Select(pb => pb.OnhandQty).Sum();
  } catch {}

  row.OnHandQuantity = row.OnHandQuantity - qtyInBadWareHouse; 
}

Might have to do OrderRel as well, didn’t look that far.

If this was for a one off emergency like a flood, you could create a second bin of non-netable type for each existing bin. Bin A001 would get a twin named A001_NN.

Then do an inventory transfer from the original to the _NN twin.

That could be done with a BAQ, then export to Excel, tweak the Excel file for use in a DMT import. One to make the new bins, and one to do the inventory transfers. Shouldn’t take more than a half hour.

Down side is you’ll have all those _NN bins that youll never be able to get rid of. Maybe three DMTs (adj to zero, modify bin, and adj qty back) is the way to go.

1 Like

Put them all in one bin, store the original bin in a UD Table/Tag/UD Field.

1 Like

thanks but I am not interested in introducing code to solve this.

You can set all the bins to non nettable… thatbwould do it.

Andrew Fagan
Sonas Group, LLC
617-335-0505

The single Bin idea is good. And I’d just use the original export as the info for maintaining the original bin locations.

Would Default Bin in partplant need to be updated? Seems like even with apparently zero QOH, orders would still default to that warehouse.

Epicor does not have a core feature that would turn off a warehouse, but one “easy” (human driven) way to do this would be to go into the Warehouse maintenance, and to rename the warehouse to “FLOODED - DO NOT USE”. and then instruct the users to not use the warehouse.

It might be a nice feature to have. Or the ability to make a bin that contains quantities to not be sellable.

This is the approach I took. Tried to limit the # of transactions generated while still having inventory value captured.