Показать сообщение отдельно
Старый 06.02.2003, 13:50   #7  
Grizzly is offline
Grizzly
Участник
 
85 / 10 (1) +
Регистрация: 30.01.2003
Адрес: Омск
> Прошу прощения за не полностью раскрытую тему, похоже мы друг друга не
> очень понимаем, попробую написать на примерах:

Sharky, я тебя понимаю. Вот только ты меня не очень :-)

> Первое:
> Продажа.
> Цена товара
> Количественная скидка рассчитывается по формуле:
> С(n) = C(1)+(n-1)*C(1)*0.7

Я уже писал в первом письме, что системой скидок твою задачу не решишь. Абсолютная (т.е. в деньгах) скидка по строке рассчитывается так:

"сумма по строке" х "процент скидки".

И никак иначе.

> Фактически это означает
> цена первого часа в сауне = 120 рублей
> Цена всех последующих часов - с 30% скидкой = 84
> рубля.

Цена дается одна на все количество товара в строке. Т.е. если в строке у тебя указано количество 10, то все десять единиц стоят одинаково. Для того, чтобы продать товар по разным ценам нужно ввести две строки.
Но чтобы не вводить цены товара вручную, ведь по умолчанию система будет проставлять одно и тоже значение, я тебе и предлагал завести отдельные карточки товара для лицензии за первого пользователя и последующих.
Кроме того, ты посмотри как выглядят счета твоей организации. Там, я почти уверен, при продаже более одной пользовательских лицензий указываются две строки.

> Соответственно цена за пять часов = 120+84*4=456 рублев.
> Как эту бяку сделать? Можно ли где-нибудь прописать формулу расчета цены, если
> да, то в каком месте это красивше сделать?

Теоритически запрограммировать можно все что угодно, но поверь ты усложнишь жизнь не только себе, но и тем людям, для которых ты это делаешь.

> Второе:
>
> Теперь представь.
> Есть у нас есть костюм. Состоит он из пиджака и брюк. Брюки в свою
> очередь состоят из ремня и самих штанов.
> Я могу при покупке костюма сказать что хочу 5 костюмов. При этом прога
> мне посчитает, что надо пять пиджаков и пять брюк. У покупателя есть
> возможность выбрать хочет ли он брюки с ремнем или без, но заказать 2
> штанов с ремнем, а остальные без он не имеет права.
> Теперь сам вопрос. Понятно, что я все это делаю в заказе, использую
> функцию "Раскрыть комплект". Но мне надо на последнем уровне иметь
> возможность поставить галку"С ремнем или без", т.е. я не хочу менеджеру дать
> право изменять непосредственно количество ремней на ноль, т.к. он может
> ошибиться и поправить кол-во самих штанов. Либо введет вместо нуля один или
> 2.

В Attain стандартными средствами ты этого не сделаешь по следующим причинам:
1. При продаже модуля существуют такие лицензии (например, на сам модуль и на первого пользователя) которые не зависят от общего числа продаваемых рабочих мест. Они всегда продаются в единичном экземпляре. Для этого комплект должен позволять постоянный тип потребления компонентов (число единиц компонента не зависит от числа единиц комлекта), а в Attain есть только переменный тип потребления.
2. Состав комплекта (спецификации) в Attain не может определяться (включать или не включать некоторые компоненты) его свойствами.

Кстати, обе эти возможности есть в Axapta.

Поэтому у тебя есть две возможности:
1. При выборе модуля и его раскрытии просто помещать в строки заказа (счета) все необходимые лицензии с количеством 0 (или 1), а менеджер сам проставит нужные количества. Кстати, посмотри прайс-лист от MBS, в основе его построения лежит та же идея.
2. Написать свою "примочку" (это называют конфигуратором), которая будет запрашивать у пользователя необходимые данные и формировать строки заказа. В этом случае все действия пользователя будешь контролировать ты сам, вернее, твоя программа.

> Могу ли я в Navision запретить на последнем уровне корректировку количества, А
> вставить возможность отметить те предметы, которые должны входить в комплект.

Запрещать смысла нет. Пользователь всегда сможет ввести еще одну строку в которой сможет "отрегулировать" заказ. Кроме того, мы уже говорили, что покупатель может докупать лицензии. А предусмотреть все варианты сочетания лицензий достаточно трудно. Если к твоим менеджерам придет клиент, а они не смогут выписать ему счет, будет не очень красиво и виноват будешь ты :-)
Запрещать нужно тогда, когда действия пользователя могут привести к нарушению целостности данных или когда выполняемая им операция 100% ошибочна.