goodbitlabs: при перемещении со слада в магаз пишутся на каждый материал+партию создается документ в 2 строчки: 1) с минусом и в поле склад указываем склад 2) с плюсом указываем магазин
Для более подробного ответа надо слишком много времени, предлагаю вам нанять бизнес-аналитика если ответов на пальцах вам недостаточно.
Дополню ссылкой gameprogrammingpatterns.com/object-pool.html . Если коротко, то объекты не надо постоянно добавлять и удалять, а надо держать в них логическую переменную об использовании объекта.