|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
Работаю программистом в одной компании, сейчас в одном из проектов реализовывается ф-ции склада. Сообственно на меня возложена эта задача, а опыта построения программ складского учета особо не было. Вообщем нужен совет программера участвующий в подобных проектах. Столкнулся с такой проблемой: как известно склад может хранить сырьё разного типа, а соответственно и за каждым видом сырья закрепляюся свои ед. измерения, т.е. одни в килограммах, другие в литрах, третьи в метрах, четвертые в штуках и т.д., в справочнике сырья есть возможность за каждым видом компонентов указывать свою единицу, которая используется по умолчанию при добавлении данного компонента на склад (сырье на склад, естестественно добавляется только из справочника сырья). Дать ли пользователю возможность задавать размерность отличную от заданной в справочнике сырья. Я не знаю нужно ли отрывать такую функцию для пользователя или это полный абсурд, чтобы на складе единицы различались от заданных в справочнике сырья. Дело в том что в зависимости от решения по разному будет выглядеть БД и по разному будет работать логика программы. Если такую функцию запретить, то изменения ед. изм. у каких-либо компонентов, сразу автоматически отразиться на эти компоненты хранимые на складе. БД в самом простом случает выглядит приблизительно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Если такую функцию открыть, то изменения ед. изм. у каких-либо компонентов, отразиьтся на эти компоненты только при их новом добавлении. БД в самом простом случает выглядит приблизительно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 11:21 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
DelphiLexx, Конечно лучше дать пользователю задавать Trans UOM Для этого вводят вторую единицу измерения - единица измерения для операции. И в транзакции пишут поля такого типа: item_code, trans_quantity, trans_uom, base_quantity (вычисляется системой), base_uom Отдельно заводят таблицы пересчетов единиц измерения, в том числе между разными классами UOM. (например пересчет коробок в кг для позиции "Молоко") Тема про UOM не такая простая, лучше ознакомьтесь с литературой по предметной области. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 11:29 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
ERP'шникТема про UOM не такая простая, лучше ознакомьтесь с литературой по предметной области. Спасибо - смысл уловил. Не подскажите как это сделать в самом простом случае? Просто особо времени не дают и соответственно вникать в тонкости UOM особо некогда, поэтому нужно запроектировать более менее не статично, но без излишков по времени ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 11:49 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
остатки и движения на складе необходимо хранить в одной и той же единице номенклатуры, а вот справочники: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Допустим, есть поступление количества N в единицах Х, тогда нужно перевести в DefaultMeasure по формуле: N*X.Coef/X.Raw.DefaultMeasure.Coef Желательно, чтобы DefaultMeasure имело минимальную степень вхождения (обычно 1). Для получения отчета в произвольных едиицах нужно воспользоваться обратной формулой: M*X.Raw.DefaultMeasure.Coef/X.Coef С уважением, Naf ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 12:19 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
Nafостатки и движения на складе необходимо хранить в одной и той же единице номенклатуры, а вот справочники: что-то не совсем понял зачем в таблицу Measure запихивать поле Raw_ID и также не понятно почему в Warehouse нельзя использовать MEA_ID. Вот смотрите, как мне кажется, если я ошибаюсь, пожалуйста, поправьте: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
теперь предположим есть сырья A у которого в справочнике сырья стоит использовать кг (килограммы), на складе мы хотим указывать для него в т (тоннах). В таблице соответствия между кг и т стоит коэффициент 0.001 т и кг стоит коэфф 1000 пусть на складе мы указали, что сырья A у нас 5тонн, тогда если в каких-то модулях программы используется в каких-либо расчетах компонент А в кг, то согласно таблице конвертирования мы получим что надо домножить на 1000 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 12:50 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
DelphiLexx MEA_CONVERT - таблица конвертирования из одних единиц в другие RAW_ID integer MEA_ID itneger MEA_ID integer Coeff_Convert double precession если понадобится, например, единицы массы пересчитывать в объем и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 13:04 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
iscrafmDelphiLexx MEA_CONVERT - таблица конвертирования из одних единиц в другие RAW_ID integer MEA_ID itneger MEA_ID integer Coeff_Convert double precession если понадобится, например, единицы массы пересчитывать в объем и т.п. В смысле может получиться так, что для перевода одной единицы в другую будет недостаточно коэф. переводы, ну т.е. для разных компонентов этот компонент будет разный?! Тогда таблицу конвертирования следует разбить на: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
А почему в таблице склад не нужно использовать MEA_ID ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 13:12 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
DelphiLexxВ смысле может получиться так, что для перевода одной единицы в другую будет недостаточно коэф. переводы, ну т.е. для разных компонентов этот компонент будет разный?! да. если такого товара нет и не предвидится, то конечно не стоит усложнять. DelphiLexxА почему в таблице склад не нужно использовать MEA_ID суть таблицы склад уточните плз. по структуре непонятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 13:19 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
iscrafmсуть таблицы склад уточните плз. по структуре непонятно. SKLAD SKLAD_ID integer RAW_ID integer MEA_ID integer ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 13:39 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
DelphiLexx, тогда единица измерения нужна. Правило простое: храните рядом (в одной записи) с цифрой, обозначающей количество, единицу измерения этого количества. всегда. Иначе можете попасть в ситуацию, похожую на 38 попугаев. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 14:24 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
iscrafmИначе можете попасть в ситуацию, похожую на 38 попугаев. Т.е поле MEA_ID необходимо в таблице SKLAD? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 14:34 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
DelphiLexxiscrafmИначе можете попасть в ситуацию, похожую на 38 попугаев. Т.е поле MEA_ID необходимо в таблице SKLAD? если я правильно понял, то эта таблица суть карточка складского учета. если в нее записывается количество, то конечно нужна и единица измерения этого количества ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 14:54 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
iscrafmесли я правильно понял, то эта таблица суть карточка складского учета. если в нее записывается количество, то конечно нужна и единица измерения этого количества на самом деле эта таблица более сложна и состоит еще из дополнительной, ну суть уловил правильно здесь собственно указывается что у нас на складе, а уже партии конкретного вида сырья храняться в другой таблице. Я разрешаю менять ед. изм. только у вида сырья, но никак ни у партия, все партии одного вида имееют одну и туже размерность, а иначе просто будет большой геморой ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 15:16 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
DelphiLexx на самом деле эта таблица более сложна и состоит еще из дополнительной, ну суть уловил правильно здесь собственно указывается что у нас на складе, а уже партии конкретного вида сырья храняться в другой таблице. Я разрешаю менять ед. изм. только у вида сырья, но никак ни у партия, все партии одного вида имееют одну и туже размерность, а иначе просто будет большой геморой каждый программист должен написать свой компилятор и свой склад справочник партий конечно должен быть отдельным. а вот партия для текущей операции должна указываться в той же строке. и trans_uom в этом случае будет работать и для партии, а не только для "вида_сырья" item_code, lot, trans_quantity, trans_uom, base_quantity (вычисляется системой), base_uom ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 15:39 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
Тоже ипотечник справочник партий конечно должен быть отдельным. а вот партия для текущей операции должна указываться в той же строке. и trans_uom в этом случае будет работать и для партии, а не только для "вида_сырья" Завязать единицы измерения за партиями я не хочу, это усложняет процесс да и абсурд это ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 15:43 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
DelphiLexx, усложнение процесса наступает в тот момент, когда вдруг возникает запись с количеством, непонятно в каких единицах измеренным. Конечно можно реализовать логику, которая на каждом шагу будет контролировать логическую целостность данных, но спрашивали как проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 15:59 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
iscrafmусложнение процесса наступает в тот момент, когда вдруг возникает запись с количеством, непонятно в каких единицах измеренным... Нет я имел ввиду другое, дело в том, что у меня реализовано так: сначала выбираем сырье которое хотим добавить на склад, для этого сырья есть возможность задать ед. изм. отличное по умолчанию (которое задается в справочнике сырья). После того, как добавлено сырье для него автоматически формируется одна партия в которой задается цена, дата и кол-во. Партий для конкретного сырья можно задавать сколь угодно. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 16:21 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
DelphiLexx, я как раз про такую ситуацию. У вас создалась запись партии с указанием количества и ссылкой на справочник сырья, которая является источником информации о единице измерения. Через месяц метры, в справочнике сырья, поменяли на сантиметры. Вы сразу же, автоматически, становитесь обладателем множества записей с цифрами, непонятно что означающими. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 16:32 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
iscrafmя как раз про такую ситуацию. Опять вы неправильно поняли, сейчас наглядно отображу Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 17:33 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
НУ что, так можно? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2009, 18:04 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
Очень жду вашего ответа ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2009, 12:46 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
Лучше добавьте ЕИ к запись партии. Зачем возможные колизии когда их можно избежать. А из SKLAD, кстати, можно убрать за ненадобностью. При необходимости получить остатки , всегда можно взять ЕИ из справочника ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2009, 16:12 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
iscrafmЛучше добавьте ЕИ к запись партии. Что за ЕИ - не понял вас, не могли бы структурно через таблицы изобразить Модератор: Тема перенесена из форума "ERP и учетные системы". ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2009, 20:48 |
|
Нужен совет при разработке склада в учетной системе
|
|||
---|---|---|---|
#18+
И все же как расшифровывается ЕИ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2009, 18:40 |
|
|
start [/forum/topic.php?fid=33&msg=36120595&tid=1548488]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 157ms |
0 / 0 |