Its hard to see the difference because both options are the same code [:|]. The worst thing is that the same fundamental mistake appears three times in the same CodeUnit. its as if someone started copying the code, then went to lunch, then forgot to modify the second bit to do something different.
Basically the developer has a CASE statement that says
IF condition A then
do XYZ, or
IF condition B then
also do XYZ.
So in other words, completely ignore the condition. In fact these two pieces of code:
Are exactly the same.
This only affects warehouse shipping, not normal Navision Inventory shipping. The issue is not with Counters, the problem is that if say you have a batch of 1,000 orders, and say the second one has a blocked item, then the process stops, and you would just have to keep filtering out all the orders that did not ship until it is all posted.