Проблема с обработкой стоимости проживания с учётом скидки.

1. BuryMeInVegas 04.10.19 16:36 Сейчас в теме
Добрый день! Столкнулся с очередной проблемой. Имеется справочник "Скидки" с табличной частью (реквизиты "КоличествоПосещений" и "РазмерСкидки"). Имеется регистр сведений, который учитывает движения документа, оформляющего посещение клиента. Моя задача из модуля формы вывести стоимость посещения без скидки и со скидкой на саму форму. Вывод без скидки я, разумеется, сделал, а вот вывод со скидкой я сделать не могу, не могу понять, как именно его делать.

Логика у меня была такова:
ЗапросНаСкидку = Новый Запрос ("ВЫБРАТЬ
	                               |	Скидки.РазмерСкидок.(
	                               |		ВЫБОР
	                               |			КОГДА КОЛИЧЕСТВО(ЗанятыеНомераФакт.Клиент) >= Скидки.РазмерСкидок.КоличествоПосещений
	                               |				ТОГДА Скидки.РазмерСкидок.РазмерСкидки
	                               |			ИНАЧЕ 1
	                               |		КОНЕЦ КАК СкидкаКлиенту
	                               |	) КАК РазмерСкидок
	                               |ИЗ
	                               |	Справочник.Скидки КАК Скидки,
	                               |	РегистрСведений.ЗанятыеНомераФакт КАК ЗанятыеНомераФакт
	                               |ГДЕ
	                               |	ЗанятыеНомераФакт.Клиент = &Клиент
	                               |
	                               |СГРУППИРОВАТЬ ПО
	                               |	Скидки.РазмерСкидок.(КоличествоПосещений,
	                               |	РазмерСкидки),
	                               |	Скидки.РазмерСкидок.(Скидки.РазмерСкидок.КоличествоПосещений,
	                               |	Скидки.РазмерСкидок.РазмерСкидки)");

Показать


То есть, я достаю количество определённого клиента (которого передаю, как параметр), после чего сравниваю, сколько раз он появлялся в регистре (т.е. его количество посещений) с количеством посещений, которое необходимо для получения скидки.

Например, клиент сходил всего 2 раза, а минимальную скидку мы предоставляем от 10 раз. Или наоборот, клиент был у нас 30 раз, значит он получит максимальную скидку (например при 25 посещениях - 30%).

Вопрос: где я свернул не туда? Везде или только частично?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 04.10.19 17:16 Сейчас в теме
В ТЧ лучше сделать два поля по количеству посещений
от до
10 24
25 99999
тогда легче написать соединение в запросе.
И предварительно во ВТ сгруппировать РС
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот