У вас есть некоторые из ваших требований, перечисленных здесь, но у вас недостаточно информации, чтобы завершить разработку системы выставления счетов, а также у вас есть нереалистичная цель идеальной системы инвентаризации - то, что идеально подходит для одного человека, несовершенно для другой; Если бы я был вами, я бы согласился на стремление к лучшему из породы.
У вас есть доступ к вашим клиентам? Если вы это сделаете, вам нужно сесть с ними и узнать, чего они хотят. Хороший способ сделать это - моделировать свои рабочие процессы. Запишите, какие шаги они делают от начала до конца, и что влияет на их работу (известные как внешние участники или интерфейсы). Это долгий процесс, но в итоге вы сможете точно указать, что делается, когда и в каком порядке, плюс функциональные и нефункциональные ограничения в системе.
Как только у вас есть эта информация, фактическое проектирование физической системы относительно прост. Удачи.
[Большой намек] Процесс я описал здесь интенсивно использует UML. [/ Большой намек]