Yes, that is the right idea. But you do not need (and should not use) a large value for M, which can cause numerical difficulties. Instead, you can avoid introducing M and the new constraints by modifying the existing Max_Supply and Max_Use constraints. In that case, capacity[i] and MaxUse[j] will play the roles of M.
... View more