CftClub.ru
Клуб специалистов ЦФТ-Банк

[TARIFFS_COMMISS]. Настройка тарифа, поле НЕ МЕНЬШЕ

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Настройка и сопровождение
Предыдущая тема :: Следующая тема  
Автор Сообщение
korneev
Профи


Вступление в Клуб: 02.07.2007
СообщениеВт Авг 14, 2007 13:51   [TARIFFS_COMMISS]. Настройка тарифа, поле НЕ МЕНЬШЕ Ответить с цитатой
Полезность: Нет оценки
Если галочка "Процент от суммы" стоит, то значения указанные в поля "Не меньше" и "Не больше" учитываются. Если же галочку "Процент от суммы" снять, то поля "Не меньше" и "Не больше" остаются активные и в них можно вводить все что угодно, но только в расчет они НЕ принимаются.

т.о. когда я указал:
"Ставка тарифа" = [НЕКИЙ_ПАРАМЕТР]*0.022
"Процент от суммы" = false
"Не больше" = 100
Тариф работал неправильно

Пришлось переписать
"Ставка тарифа" = greatest( [НЕКИЙ_ПАРАМЕТР]*0.022, 100)
"Процент от суммы" = false

В документации (Глава 1-06-1) сказано лишь:
Процент от суммы - если поле заполнено, то в поле "Ставка тарифа" указывается значение процента, если поле не заполнено, то в поле "Ставка тарифа" указывается абсолютное значение тарифа.
Ставка тарифа - значение процента или абсолютное значение тарифа
Не меньше - ограничение на сумму тарифа снизу
Не больше - ограничение на сумму тарифа сверху
Alex2019
Профи


Вступление в Клуб: 02.07.2007
СообщениеВт Авг 14, 2007 15:26   Re: [TARIFFS_COMMISS]. Настройка тарифа, поле НЕ МЕНЬШЕ Ответить с цитатой
Полезность: Нет оценки
korneev пишет:
Если же галочку "Процент от суммы" снять, то поля "Не меньше" и "Не больше" остаются активные и в них можно вводить все что угодно, но только в расчет они НЕ принимаются.

Вообще-то принимаются. Простой пример: тариф (не процентный) равен 6. Если поля больше/меньше пустые, то комиссия по этому тарифу вычисляется 6 (что не удивительно Smile), если я ставлю 6, но не больше 4 - считается 4. Если 6, но не меньше 8 - считается 8. А вот если 6, но не меньше 8 и не больше 4, то - 4. Видимо, такой глупости разработчики не предусмотрели Smile

korneev пишет:
т.о. когда я указал:
"Ставка тарифа" = [НЕКИЙ_ПАРАМЕТР]*0.022
"Процент от суммы" = false
"Не больше" = 100
Тариф работал неправильно

Пришлось переписать
"Ставка тарифа" = greatest( [НЕКИЙ_ПАРАМЕТР]*0.022, 100)
"Процент от суммы" = false


В вашей первой нотации ограничение идет сверху (не больше), а в исправленной - снизу (пока вычисляемая величина меньше 100 будет возвращаться 100).
"Вы уж определитесь" (с) Smile
korneev
Профи


Вступление в Клуб: 02.07.2007
СообщениеВт Авг 14, 2007 17:49   Re: [TARIFFS_COMMISS]. Настройка тарифа, поле НЕ МЕНЬШЕ Ответить с цитатой
Полезность: Нет оценки
Принимаются ??? Shocked Александр, у Вас какая версия? я на 7.4 пробую. А вы точно пробовали? В ЦФТ подтвердили мои слова, но предложили несоответствие переквалифицировать в доработку.
Alex2019
Профи


Вступление в Клуб: 02.07.2007
СообщениеВт Авг 14, 2007 17:50   Re: [TARIFFS_COMMISS]. Настройка тарифа, поле НЕ МЕНЬШЕ Ответить с цитатой
Полезность: Нет оценки
korneev пишет:
Принимаются ??? Shocked Александр, у Вас какая версия? я на 7.4 пробую.

Аналогично! Smile
Может дело в шаблоне?
ЦФТ согласилось? Удивительно! Естественно, пробовал, зачем бы мне вас обманывать Shocked Но пробовал без вычисляемого параметра. Кстати, почему вы не хотите этот параметр указать в качестве суммы шаблона, а тариф сделать процентным (2.2%)?
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеСр Авг 15, 2007 08:27    Ответить с цитатой
Полезность: Нет оценки
Коллеги! Позвольте мне вклиниться в Вашу беседу!

TARIFFS_COMMISS.COST_SERVICE
Код:
            if not nvl(propyskat, false) -- если не пропускать проверку на минимум/максимум
            and V#IT_PROC
            then
               if Tf_Cache.Minimum > 0 and cost_for_min_max < Tf_Cache.Minimum then
                  COST := Tf_Cache.Minimum;
                  -- если отработал минимум/максимум, то и валюта должна быть от тарифа
                  &set_calc_valuta;
               elsif Tf_Cache.Maximum > 0 and cost_for_min_max > Tf_Cache.Maximum then
                  COST := Tf_Cache.Maximum;
                  &set_calc_valuta;
               end if;
               debug_info('Провели обычную проверку минимума/максимума');
--x            elsif V#IT_PROC then   -- [DVP-5b10]
            else   -- [DVP-5b15] Сохраняем мин/макс всегда. Для случая, если комиссия фиксированная, не проценты, и мы указали мин/макс (т.е. независимо от символов кассы должны брать одну сумму)
               debug_info('Запоминаем минимум/максимум ('||Tf_Cache.Minimum||'/'||Tf_Cache.Maximum||')');
               tMinSum := Tf_Cache.Minimum;
               tMaxSum := Tf_Cache.Maximum;
               -- !!! Валюты?...
            end if;



Отсюда видно, что в if попадаем, когда стоит признак процента, а в else, когда соответственно не стоит. Далее простым поиском по коду видно, что tMinSum и tMaxSum больше нигде не участвуют. Таким образом, в этой операции в эти переменные значения только записываются Smile
Анализируются же они в BUSINESS_OP только при очень узком условии, которое связано с кассовыми символами.
Таким образом у ЦФТ универсальная ядерная функция оказалось тесно завязанной на реквизиты документа!!! А мы об этом не знаем!!!
И пользуемся этим... Sad

Возможно именно поэтому у Alex2019 минимум срабатывает.

Предположу, что раньше все это с успехом работало, но именно после каких-то доработок, ссылки на которые в избытке присутствуют в коде, все так сильно изменилось не в лучшую сторону.
Alex2019
Профи


Вступление в Клуб: 02.07.2007
СообщениеСр Авг 15, 2007 09:28    Ответить с цитатой
Полезность: Нет оценки
Дмитрий, Вы совершенно правы. Я действительно взял первый попавшийся документ с комиссией, и он оказался кассовым...
А по кодам ползать поленился... Виноватый Rolling Eyes

Но "наезжать" на ЦФТ по поводу существующего алгоритма я бы не стал. Лимиты для фиксированного тарифа смотрятся, вообще говоря, нелогично.
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеСр Авг 15, 2007 09:37    Ответить с цитатой
Полезность: Нет оценки
Alex2019 пишет:
Но "наезжать" на ЦФТ по поводу существующего алгоритма я бы не стал. Лимиты для фиксированного тарифа смотрятся, вообще говоря, нелогично.


1. "Наезжать" не буду, но заявка на несоответствие имеет право на существование. ЦФТ далее вправе выбрать: либо исправить доку, либо исправить код, чтобы лимиты анализировались.
2. Для фиксированного тарифа действительно нелогично, а вот для вычисляемого значения с разными сложными формулами - лимиты позволили бы сократить длину этой формулы.
Alex2019
Профи


Вступление в Клуб: 02.07.2007
СообщениеСр Авг 15, 2007 09:47    Ответить с цитатой
Полезность: Нет оценки
timochev пишет:
1. "Наезжать" не буду, но заявка на несоответствие имеет право на существование. ЦФТ далее вправе выбрать: либо исправить доку, либо исправить код, чтобы лимиты анализировались.

...тем более, что для некоторых документов это работает. Склонен согласиться. Можно только заметить, что иногда применяемый метод устранения несоответствия правкой документации, мягко говоря, не приветствуется.
timochev пишет:
2. Для фиксированного тарифа действительно нелогично, а вот для вычисляемого значения с разными сложными формулами - лимиты позволили бы сократить длину этой формулы.

Вероятно, да. Но тут есть хотя бы варианты: либо изобретать сложную формулу, либо производить вычисления в шаблоне, либо создать массив тарифов с вычисляемыми условиями
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеСр Авг 15, 2007 09:52    Ответить с цитатой
Полезность: Нет оценки
Alex2019 пишет:
Можно только заметить, что иногда применяемый метод устранения несоответствия правкой документации, мягко говоря, не приветствуется.

Это уже зависит, у кого на что совести хватает Very Happy
korneev
Профи


Вступление в Клуб: 02.07.2007
СообщениеСр Авг 15, 2007 11:45    Ответить с цитатой
Полезность: Нет оценки
Случай то довольно распространенный.
Комиссия за снятие наличных денежных средств:
если снятие наличных превышает 200 000 руб за месяц то 5%, иначе 3%, но не меньше 30 руб.

Александр! как бы вы настроили??
Alex2019
Профи


Вступление в Клуб: 02.07.2007
СообщениеСр Авг 15, 2007 12:25    Ответить с цитатой
Полезность: Нет оценки
korneev пишет:
Комиссия за снятие наличных денежных средств:
если снятие наличных превышает 200 000 руб за месяц то 5%, иначе 3%, но не меньше 30 руб.
Александр! как бы вы настроили??

Скорее всего, настраивал бы "в лоб": в хуке RKO_CALC_PAR_1 нарисовал бы вычисляемый параметр <ВЫЧ_ПАР>, считающий выдачу за текущий месяц и возвращающий, например, '0', если выдача <=200000 и '1', если больше. А в тарифе (точнее, в массиве TARIF того тарифа, который указан в шаблоне комиссии) сделал бы 2 записи: первая - условие [ВЫЧ_ПАР]='1' и 5%, вторая [ВЫЧ_ПАР]='0' и 3% с ограничением по минимуму.
Если нужны детали - может быть проще директом? (или в аську)
korneev
Профи


Вступление в Клуб: 02.07.2007
СообщениеСр Авг 15, 2007 13:03    Ответить с цитатой
Полезность: Нет оценки
если клиент уже обналичил 190 000 руб в текущем месяце
и хочет обналичить еще 30 000 руб, то
1) с 10 000 надо взять 3%
2) с 20 000 надо взять 5%

а при вашей настройке либо 3% со всей суммы, либо 5%
Alex2019
Профи


Вступление в Клуб: 02.07.2007
СообщениеСр Авг 15, 2007 13:35    Ответить с цитатой
Полезность: Нет оценки
korneev пишет:
и хочет обналичить еще 30 000 руб, то
1) с 10 000 надо взять 3%
2) с 20 000 надо взять 5%

О как! И удержать эти 300+1000 одним комиссионным документом? Можно, конечно и такое настроить...
Например, сделать три шаблона. Первый, с условием [<ВЫЧ_ПАР>]+[ДЛЯ_КОМИСС_РКО]<=20000, суммой [ДЛЯ_КОМИСС_РКО] и прописать ему тариф 3% но не менее. Второй - с условием [<ВЫЧ_ПАР>]+[ДЛЯ_КОМИСС_РКО]>20000, суммой 20000-[<ВЫЧ_ПАР>] с тем же тарифом. И третий - с условием, как у второго, суммой [<ВЫЧ_ПАР>]+[ДЛЯ_КОМИСС_РКО]-20000 и тарифом 5%. При обработке они дадут один документ с итоговой суммой.
Но как-то оно... неэлегантно. Может проще все считать в вычисляемых? Ведь туда передается и договор, и документ. Пусть он вам вычисляет сумму комиссии, учитывает и предыдущую выдачу, и минимум, ее вставляете как фиксированную в тариф - и никаких ограничений не нужно.
Хотя, как было подмечено выше timochev, для кассовых документов ограничения работают (мы же говорим о снятии наличными, т.е. кассовой операции?), так что есть еще варианты Smile
korneev
Профи


Вступление в Клуб: 02.07.2007
СообщениеЧт Авг 16, 2007 10:53    Ответить с цитатой
Полезность: Нет оценки
Полагаю, что первый способ является стандартным для ЦФТ

Второй - неприемлем, потому что зачем тогда нужен механизм тарифов, если все считать программно в хуке?

Мы делаем так:
"Ставка тарифа" =
greatest([СУММА]-greatest(200000-[СУМ_ЗА_МЕСЯЦ],0), 0)*0.02+[СУММА]*0.03

а т.к. "Не меньше" не работает то
greatest(greatest([СУММА]-greatest(200000-[СУМ_ЗА_МЕСЯЦ],0), 0)*0.02+[СУММА]*0.03, 30)
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Настройка и сопровождение Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru