|
|
|
Учёт ТМЦ
|
|||
|---|---|---|---|
|
#18+
Уважаемые форумчане. Требуется помощь, ибо спросить не у кого. Нужно внести изменения в имеющийся уже многоскладской учёт ТМЦ (каждая единица учёта имеет свой уникальный инвентарный номер (соответственно строку в БД)). В общем, схема БД такая: Склады(Sclad - поля ID, Name), ТМЦ(TMC - Поля ID, Name, Inv_Nomer, CurrentScladID), Накладаные перемещения(WayBill - ID, Number, Date, FromScladID, ToScladID), Состав накладной перемещения(WayBillContent - поля ID, WaybillID, TMCID). Каждая единица привязана к своему складу. При создании накладной - ТМЦ отвязывается от одного склада и привязывается к другому (в накладной могут находиться товары только из одного склада). В таблице ТМЦ есть соответствующее поле CurrentScladID. Также есть проверка на возможность изменения даты накладной, либо её удаления - проверяется, было ли уже движение по этому ТМЦ в пределах периода изменения. Если было - то ничего не удаляется. Проверка проводилась по дате накладной. В общем всё это дело успешно работало, пока не нашлась бага. Т.к. формат поля Date таблицы WayBill - просто дата (без времени), то возникают ошибки при редактировании накладной. Пример - одним днём делаем передачу на склад и тут же делаем возврат. Т.е. в базе две накладных с одной датой. Пытаемся удалить одну из накладных - проверка отпинывает - поскольку за проверяемый период уже было движение. Каким образом это можно исправить? Я вижу несколько вариантов, но они мне все не нравятся: 1. Хранить время создания накладной. Но время тоже может совпасть. 2. Делать проверочный период с запасом в один день. - плохо подходит, из-за специфики организации - за день может быть несколько перемещений. 3. Включить в проверку каким-нибудь образом ID накладной. Понятно, в общем, что это тоже не вариант 4. Проверять помимо даты - ещё и по-складам. - Больно мудрёная проверка получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2007, 15:36 |
|
||
|
Учёт ТМЦ
|
|||
|---|---|---|---|
|
#18+
Micola_mgnПри создании накладной - ТМЦ отвязывается от одного склада и привязывается к другому (в накладной могут находиться товары только из одного склада). В таблице ТМЦ есть соответствующее поле CurrentScladID. Вот от этого надо избавляться . Micola_mgnТакже есть проверка на возможность изменения даты накладной, либо её удаления - проверяется, было ли уже движение по этому ТМЦ в пределах периода изменения. Если было - то ничего не удаляется. Проверка проводилась по дате накладной. Не ясен смысл проверки, тем более именно такой проверки. Micola_mgnВ общем всё это дело успешно работало, пока не нашлась бага. Т.к. формат поля Date таблицы WayBill - просто дата (без времени), то возникают ошибки при редактировании накладной. Вообще-то такая схема может работать только в очень специфической ситуации, когда номенклатура не делится и находится только на одном складе. Больше похоже на простой учет использования простых ОС, чем на склад. Рецепт был дан в начале моего сообщения, Вам надо все переделывать по-человечески. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2007, 14:00 |
|
||
|
Учёт ТМЦ
|
|||
|---|---|---|---|
|
#18+
А подробней? Каким образом тогда определять принадлежность ТМЦ к складу? И соответственно - каким образом определять произошло перемещение или нет. Сейчас есть возможность отследить историю движения - по накладным. Т.е. - от чего именно избавляться и чем это можно заменить. По поводу смысла проверки: пример история перемещений ТМЦ по складам: 1. 01.01.2007 (А)->(Б) 2. 01.02.2007 (Б)->(В) Соответственно пользователь захотел создать новое перемещение "задним числом" такого вида 3. 20.01.2007 (В)->(А) Т.е. проверка нужна для обеспечения хронологической верности данных в БД Сергей Васкецов Вообще-то такая схема может работать только в очень специфической ситуации, когда номенклатура не делится и находится только на одном складе. Больше похоже на простой учет использования простых ОС, чем на склад. Номенклатура не делится - т.е. не возможно дробление 1 "большой коробки" на несколько маленьких. Действительно, это больше учёт ОС, т.к. отпуска "на сторону" нет. Повторюсь, как это реализовать правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2007, 08:53 |
|
||
|
Учёт ТМЦ
|
|||
|---|---|---|---|
|
#18+
В догонку: номенклатура - сквозная, она не привязана к складам(подразделениям, в которых хранятся ТМЦ). Редактирование её "простыми" пользователями невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2007, 08:55 |
|
||
|
Учёт ТМЦ
|
|||
|---|---|---|---|
|
#18+
есть готовые шаблоны баз данных для учета ОС вот пример на Access http://office.microsoft.com/en-us/templates/TC010184591033.aspx?CategoryID=CT101426031033&av=ZAC000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2007, 09:45 |
|
||
|
Учёт ТМЦ
|
|||
|---|---|---|---|
|
#18+
SkladID hranitsia v poslednei nakladnoi s dannym TMS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2007, 14:33 |
|
||
|
Учёт ТМЦ
|
|||
|---|---|---|---|
|
#18+
Micola_mgnА подробней? Каким образом тогда определять принадлежность ТМЦ к складу? Это называется картотека склада. Она определяет отношение M:N между складами и номенклатурой. Micola_mgnИ соответственно - каким образом определять произошло перемещение или нет. Движение ТМЦ по картотеке заносится в третьи таблицы в момент изменения статуса документов склада. Micola_mgnНоменклатура не делится - т.е. не возможно дробление 1 "большой коробки" на несколько маленьких Это не оправдание. А то потом (уже?) будет мучительно больно переделывать. Вы путаете единицу измерения ТМЦ (одна коробка) с ТМЦ (что именно в этой коробке). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 11:31 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=112&tid=1544200]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
78ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 438ms |

| 0 / 0 |
