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