Namespace: Intelmet.SteelTrace.Framework.Entities
Сборка: Intelmet.SteelTrace.Framework.dll
Описание
Для однозначного описания количества единицы учета металла (например рулона, пакета труб или литой заготовки) недостаточно одного числового параметра. Очень часто количество описывается сразу совокупностью параметров таких как тонны, метры, штуки. Например для однозначного описания количественных характеристик пакета труб (см. рисунок)
необходимо указать указать следующую совокупность характеристик:
|
|
|
|
1 |
Вес пакета (тонн) брутто |
Брутто, это вес пакета вместе со скрепляющими полосами (т.е. в упакованном состоянии) |
|
2 |
Вес пакета (тонн) нетто |
Нетто, это вес пакета в неупакованном состоянии |
|
3 |
Количество труб в пакете |
|
|
4 |
Общая длина труб в метрах |
Совокупная длинна труб часто требуется клиентам которые планируют проложить например 2 км трубы. |
|
Поскольку не существует однозначных математических формул для пересчета например длины в штуки, или штук в тонны необходимо хранить все учетные показатели одновременно как самостоятельные числовые значения.
Понятие документального, фактического и теоретического веса
Рассмотрим следующий жизненный цикл указания количественной характеристики вес пакета.
1. Пакет поступил на склад на железнодорожном вагоне. В систему попадает вес пакета взятый из железнодорожной накладной. Такой тип веса называется документальным. Т.е. мы вынуждены верить “на слово” определенному документу. Предположим в документе написано 6 тонн.
2. После того как пакет разместили на складе кладовщики взвесили пакет на весах. Весы показали вес равный 5.9 тонны. Этот вес называется фактическим весом.
3. Вечером кладовщики достали из пакета клиенту 2 шт трубы. И в документе указали вес рассчитанный на основании приблизительной формулы. Этот вес называется теоретическим.
Документальный, фактический и теоретический веса не исключают друг друга. Приведем пример. Если по приходным документам пришло 6 тонн а на самом деле вес пакета составляет 5.9 тонны бухгалтерия может принять решение считать, что бухгалтерский учетный вес пакета равняется 6 тоннам. При этом начальник склада учитывая что бухгалтерия будет рассчитывать вес пакета исходя из данных 6 тонн может принять решение вести собственный аналитический учет при котором вес пакета будет равен 5.9 тонны. Например для того, чтобы общий вес пакетов погруженных на автомобиль не отличался на документальные погрешности.
Теоретический вес вообще является вынужденной мерой закрывающей ситуации при которых нет документального веса физически невозможно получить фактический вес. Т.е. просто нет весов.
Таким образом описание веса пакета в один отдельно взятый момент времени можно свести к следующему набору показателей
№ |
Показатель |
Ед. изм |
Упаковка |
Достоверность |
Примечание |
1. |
Вес |
тонн |
брутто |
фактический |
запоминается с серийным номером весов и временем взвешивания |
2. |
Вес |
тонн |
брутто |
документальный |
|
3. |
Вес |
тонн |
брутто |
теоретический |
рассчитывается по формуле объем*плотность металла |
4. |
Вес |
тонн |
нетто |
фактический |
запоминается с серийным номером весов и временем взвешивания |
5. |
Вес |
тонн |
нетто |
документальный |
|
6. |
Вес |
тонн |
нетто |
теоретический |
рассчитывается по формуле объем*плотность металла |
7. |
Количество |
шт |
- |
фактический |
запоминается с серийным номером весов и временем взвешивания |
8. |
Количество |
шт |
- |
документальный |
|
9. |
Количество |
шт |
- |
теоретический |
рассчитывается по формуле объем*плотность металла |
10. |
Длина |
м/пог |
- |
фактический |
запоминается с серийным номером весов и временем взвешивания |
11. |
Длина |
м/пог |
- |
документальный |
|
12. |
Длина |
м/пог |
- |
теоретический |
рассчитывается по формуле объем*плотность металла |
Показатель в свою очередь может быть представлен в одной из единиц измерений. Например вес может быть указан или затребован в тоннах, килограммах, груммах и т.д. Единицы измерения показателя поддаются математическому пересчету поэтому не требуется их отдельное хранение.
Таким образом класс Quantity хранит совокупность паказателей, признака упаковки, признака достоверности и дополнительных признаков влияющих на обстоятельства их получения. При этом каждый из показателей описывается в базовой единице учета
Примеры использования класса Quantity
Пример №1
Пакет с упаковкой взвешен крановыми весами, вес составил 5,9 тонн.
Unit.Quantity.SetWeight(5.9, “т”, Reliability.Real, NetGross.Gross)
Пример №2
Указано количество метров в пакете полученных в ходе инвентаризации 25 метров
Unit.Quantity.SetLength(25, “м”, Reliability.Real)
Примет №3
Получить вес теоретический
Unit.Quantity.GetWeight(“тн”, Reliability.Theoretical)
Разбор XML
Пример XML пакета формируемого функцией InnerXML представлен в следующем примере:
quantity
Weight Measure=”Primary” Reliability="Real" GrossNet="Gross" Unit=”Tonn” Value="0.401280" />
Weight Measure=”Second” Reliability="Documentary" GrossNet="Gross" Unit=”Tonn” Value="0.401280" />
Weight Measure=”Second” Reliability="Theoretical" GrossNet="None" Unit=”Tonn” Value="0.401280" />
Length Measure=”Second” Reliability="Real" GrossNet="Gross" Unit=”Metre” Value="100" />
Amount Measure=”Second” Reliability="Real" GrossNet="None" Unit=”Pieces” Value="10" />
/quantity
Вложенные теги могут иметь три типа Weight (вес), Length (длина), Amount (кол-во штук).
Количество вложенных тегов может варьироваться в зависимости от того, какие значения установлены пользователем в клиентском приложении.
Свойство Measure (паказатель) может принимать два значения Primary и Second если установлено свойство Primary значит этот показатель рекомендуется использователь в бизнес-приложении в качестве учетного. Т.е. например в 1С его используют в документе для регистрового учета а остальные как дополнительные значения в карточке пакета. Например в карточке серии.
Свойство Reliability (достоверность) может принимать три значения Real (фактический), Documentary (документальный), Theoretical (теоретический).
Свойство GrossNet Брутто/нетто может принимать три значения Gross (Брутто), Net (Нетто), None (неприменимо для данного измерения)
Своиство Base может иметь два значения true и false свойство указывает на то что данный показатель следует использовать как основной в бизнес-приложении
Свойство Unit описывает единицу измерения. На данный момент система оперирует следующими единицами измерения
Tonn,
// Тонны
Kilogram, // Килограммы
Gram, // Граммы
Metre, // Метры
Centimetre, // Сантиметры
Millimetre, // Милиметры
Pieces // Штуки