ник: snipe
если принять во внимание что конечная цель всех ваших телодвижений это получение некоего счета - который в последствии будет преподнесен клиенту, то получается следующее -
в счет входят как оказанные услуги так и израсходованные материалы (тут я предполагаю что все накрутки и расценки включены в две эти категории) материалы в свою очередь должны быть оприходованы через склад, т.е. физически через него пройти - соответственно по моему МЫШЬлению на складе должно быть учтено откуда поступили материалы, по какой цене и когда - сответственно если материалы еще не поступили то эти 3 пунктика будут пустыми (ну можно добавить кому заказали и предположительную дату поступления, количество заказанного) теперь получается что составляя калькуляцию инженер пытается включить в нее материалы (необходимое количество) и делает заказ на склад - если на складе материалы есть то инженер запрашивает необходимое количество если нет то все равно заказывает на складе необходимое количество и заодно заказывает у поставщика ( в данный момент времени он может заказать больше чем ему необходимо) соответственно следующий инженер если пытается заказать материалы на складе видит сколько на складе, сколько заказано и сколько из заказанного уже занято и у второго инженера есть возможность либо подождать поступления или же дозаказать у поставщика
таким образом к Вашей табличке Оказанные услуги помимо уже подключенного блока Работы надо подключить блок заказы материалов на складе с соответствующими связями на складе
Ну пока вот такие мысли