|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Как минусовать комплектующие из таблицы при продаже изделия из другой таблицы?
Всем привет. Вот суть проблеммы:
есть таблицы "Запчасти" (id, name, price), "Состав_Изделия" (id, id_zapchast, id_komplekt, kolvo) и "Комплект" (id, name, price). Допустим комплект это табуретка, она включает записи - болт 10 шт.*3 руб., крышка 1 шт.*50 руб, ножка 4 шт.*17 руб. из таблицы "Запчасти". Как мне при продаже 2 шт. табуреток списать составляющие? Пожалуйста, помогите, два дня топчусь на месте... |
#2
|
||||
|
||||
Никто и не поможет?
|
#3
|
||||
|
||||
Ну тут как бы и нечего списывать - инфа о количестве оставшихся запчастей нигде не хранится (или под "списать" что-то еще понимается?). А так - хранимая процедура с курсорами (база, кстати, какая?). По Id комплекта добываем его состав, для каждой строки результата изменяем количество соответствующей запчасти, умноженное на кол-во комплектов. А если нет нужного кол-ва в запасе, то откатываем транзакцию.
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت |
#4
|
||||
|
||||
Цитата:
Очень прошу, можно на примере запрос SQL, как добыть состав по id и умножить его на Состав_Изделия.kolvo |
#5
|
||||
|
||||
У вас здесь нет главного. Склада - где эти детали храятся и их количества соответственно с которым надо работать.
Состав_изделия не дает этой информации, это просто шаблон с необходимым количеством деталей. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#6
|
||||
|
||||
В таблицу "Запчасти" добавил поля prixod, rasxod. Есть таблица с накладными прихода из которой с помощью запроса
Код:
SELECT SUM(kol), idtov from prixtable GROUP BY idtov |
#7
|
|||
|
|||
вообще-то, есть всего 2 модели ведения склада.
1. Модель хранения остатков. Есть таблица, где указаны численные значения остатков товаров на складе. Неудобность этой модели в том, что в случае отмены какой-либо операции тебе надо восстанавливать значения. также, если в процессе выполнения какой-либо сложной операции у тебя что-то отвалилось, то не факт, что там будет правильное значение. Плюс сложность реализации резервирования. 2. Модель прихода-расхода. в этом случае у тебя текущее состояние на складе вычисляется как сумма приходных и расходных накладных. Недостаток - через некоторое время вычисление суммы начинает занимать значительное время. Решается путем введения доп. документа "Инвентаризация". Тогда вычисление проводится от момента последней инвентаризации. Т.е. у нас есть доп. документ. Исходя из этих моделей, у тебя должен быть документ, реализующий выдачу со склада товара, для сборки некоторого изделия. Кстати, его можно реализовать в виде шаблона, когда ты указываешь изделие, а программа автоматически составляет расходную накладную по некоторому справочнику на отдельные товары/детали. |
#8
|
||||
|
||||
Цитата:
|
#9
|
|||
|
|||
Да вроде и так все понятно.
Есть специальный документ - выдача для сборки. При его заполнении ты просто указываешь какие изделия надо собирать. В отдельной таблице есть список какие детали идут для какого изделия. Далее при сохранении (или при подтверждении) этого докусмента просто формируется еще один на отпуск нужного кол-ва деталей по этой специальной табличке. ЗЫ. Тебе это все для чего? По работе или для учебы? Просто, если для учебы, то можно сильно не напрягаться и такую сложную систему не городить. |
#10
|
||||
|
||||
Пишу для друга прогу по учету материалов на его фирме (занимается изготовлением мебели). Полгода пользовался моей програмой, только там шло списание товара и все... а тут придумал чтоб учитывались составляющие, так как торгуют и фурнитурой и готовыми изделиями...
|
#11
|
||||
|
||||
Может кто покажет примерную структуру базы для даного случая? Очень прошу, уже неделю бьюсь об стенку
|
#12
|
||||
|
||||
Раз у вас задача реальная, то простые решения с минусованием товара на живой БД забудьте. Все операции должны быть документированы в БД и в любой момент времени вы должны получать ту или иную информацию за любой период. Воспользуйтесь для начала советом Imikle он дельную мысль подкинул.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#13
|
||||
|
||||
Цитата:
Так в том и проблемма, что не могу понять сам принцип... очень нужен пример |