Функция определения стоимости
Допустим, есть потребность в каком-то элементе в количестве КВО и в единице измерения КЕ, а в таблице кодов и наименований цена этого элемента — ЦЕНА указана в единице измерения ЕЦ.
Вопрос: как определить стоимость этой потребности?
ЕИ могут быть не любые, а только из набора, указанного выше.
‘50’[пара], на какой бы стороне она не оказалась, переводится в ‘40’[шт].
После этого, данные с обеих сторон приводятся к основным единицам измерения:
‘06’[кг], ‘13’[м], ‘26’[м^2], ‘39’[м^3], ’40’[шт], ‘60’[час], ‘70’[квтч]
с пересчётом КВО и ЦЕНА и приведением КЕ и ЕЦ.
Если в результате такого приведения получится ЕЦ=КЕ, то стоимость определится как ЦЕНА*КВО, иначе придётся использовать таблицу пересчёта.
Считается, что перед применением таблицы пересчёта величины уже приведены к основным единицам измерения.
Таблица пересчёта не относится ни к потребности, ни к ценнику, она сама по себе. Содержит она элемент, какой-то свой код единицы измерения — КЕИ и массу единицы измерения — МАСИ>0.
При этом тип КЕИ не должен быть массовым, а МАСИ должна быть обязательно в килограммах.
Если КЕИ для данного элемента не принадлежит основным единицам измерения, то он приводится к таковым с пересчетом МАСИ.
Условием применения таблицы пересчёта является то, что единица измерения с одной из сторон равна ‘06’[кг], а с другой — КЕИ и это правильно: метры с килограммами сопоставлять можно, а со штуками или квадратными метрами — нет, по смыслу величины МАСИ, да этого и не требуется.
Пусть
Stoim – определяемая стоимость
Suc – признак успешности её определения
Для начала
Stoim :=0;
Suc :=True;
ЕСЛИ ЕЦ=КЕИ ТО
если КЕ=’06’ то
Stoim := ЦЕНА*КВО/МАСИ
иначе
Suc := False;
ИНАЧЕ ЕСЛИ КЕ=КЕИ ТО
если ЕЦ=’06’ то
Stoim := ЦЕНА*КВО*МАСИ
иначе
Suc := False;
ИНАЧЕ
Suc := False; При возникновении любой накладки (не найден элемент или единица измерения непредусмотренная) стоимость не определяется.
Кроме стоимости может быть получена масса элемента в килограммах, но это может быть сделано не всегда, а только в случаях, когда ЕИ элемента изначально массовая, либо используется таблица пересчёта.