To resolve this scenario, I have done the following setup
1. Inventory Status: 1 for good Item and 1 for damaged Item. The damaged status will have Inventory Block checked

2. Disposition Code: Same as Inventory Status, 1 for good item and 1 for damaged item, both of them have the same Work Template because the steps of receiving are similar

3. Work Template: I have created one Work Template which consist 2 pairs of Pick and Put
- Pick from Inbound Location
- Put into a Tote
- Pick from the Tote
- Put to the Bulk Location

4. Location Directives: Because of the Work Template above, firstly I thought that we need to have also 2 Put for each of the Disposition Code, totally 4 Put. 2 of them were mapped to Disposition Code "Available". The other 2 were mapped to "Damaged".
The last Put of each pair has the query to get the suggested location in a bulk location or damaged location depends on the selected Disposition Code
That approach is not correct, result is for "Available", the put location can be suggested by system but "Damaged", it cannot be.
The resolution is to remove 1 incorrect Put in Location Directives. In the end, I have only 3 Put Directives in this warehouse
- Put #1: To suggest location for a Tote, there is no query here, user needs to input a Tote location number
- Put #2: To suggest location for final bulk location of good item
- Put #3: To suggest location for final location for damaged Item
I am not really sure about how it helps but it resolved my issue. Maybe some of you with better knowledge can explain further

The result is as below
- Work details for Good Item

- Work details for Damaged Item
