Вопрос по накопительным скидкам для двух организаций Комплексная Автоматизация 2.4
Всем добрый день.! Подскажите пожалуйста, кто стакивался. у меня комплексная редакция 2.4. В ней две организации. у каждой организации две торговые точки. работают в одной базе. Суть в том, что требуется накопительная скидка и в принципе проблем настроить её нет. Но! продажи должны копиться по одному клиенту если он совершает покупки в организации1 и в организации2. то есть на данный момент если он купит в организации1 на 100к то скидка в зависимости от объёма продаж будет 10 процентов в этой же организации. и вот он с этой картой лояльности пришел в организацию2, так как там покупок не было предоставив карту скидку он не получит...база проанализирует что в организации2 покупок не было и скидку не даст...а хотелось бы чтобы еще учитывались продажи в организации1....может кто делал или есть какие-либо решения? или функционал типовой для таких случаев есть...
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Стандартным функционалом никак не получится, т.к. карта лояльности привязывается к организации.
А доработку делать, слишком много условий нужно предусмотреть. Овчинка выделки не стоит.
Но! продажи должны копиться по одному клиенту если он совершает покупки в организации1 и в организации2. то есть на данный момент если он купит в организации1 на 100к то скидка в зависимости от объёма продаж будет 10 процентов в этой же организации. и вот он с этой картой лояльности пришел в организацию2, так как там покупок не было предоставив карту скидку он не получит
Стандартным функционалом никак не получится, т.к. карта лояльности привязывается к организации.
А доработку делать, слишком много условий нужно предусмотреть. Овчинка выделки не стоит.
(2)
Это смотря с чьей позиции. Если клиент не получит скидку в 10К рублей - печаль его будет велика...
А решение придумать можно, вот только доискаться до того места где при расчете скидки оборот продаж калькулируется и поменять там в запросе отбор с конкретной организации на список - дорогого стоит...
Овчинка выделки не стоит.
Это смотря с чьей позиции. Если клиент не получит скидку в 10К рублей - печаль его будет велика...
А решение придумать можно, вот только доискаться до того места где при расчете скидки оборот продаж калькулируется и поменять там в запросе отбор с конкретной организации на список - дорогого стоит...
(3)
ать можно, вот только доискаться до того места где при расчете скидки оборот продаж калькулируется и поменять там в запросе отбор с конкретной организации на список - дорогого стоит.
вот и я думаю....там подводных камней целая тьма...странно что не реализовано в типовом функционале.
(3)
Как раз найти это место, труда не составляет. Вопрос в другом, каким образом предусмотреть все те нюансы, которые возможны при назначении скидок, и при взаимозачете скидок, а также те проблемы, которые могут возникнуть.
А решение придумать можно, вот только доискаться до того места где при расчете скидки оборот продаж калькулируется и поменять там в запросе отбор с конкретной организации на список - дорогого стоит...
Как раз найти это место, труда не составляет. Вопрос в другом, каким образом предусмотреть все те нюансы, которые возможны при назначении скидок, и при взаимозачете скидок, а также те проблемы, которые могут возникнуть.
(5) Я думаю страшного не будет так как если вы измените расчет оборотов по которым срабатывают условия так чтобы оборот данного клиента считался по всем орг а не по конкретной, тогда просто у всех скидок от суммы продаж оборот будет браться по всем орг (например).
На что это еще может повлиять кроме диапазона срабатывания условия скидки с оборота?
На что это еще может повлиять кроме диапазона срабатывания условия скидки с оборота?
(6)
Проблема не расчете скидок, проблема в перерасчете скидок. Карты лояльности жестко привязаны к конкретной организации, соответственно, должен быть дубляж такой же скидки по второй организации, причем с такими же настройками, а дальше уже нужно придумывать механизм записи накопления и списания баллов.
Я думаю страшного не будет так как если вы измените расчет оборотов по которым срабатывают условия так чтобы оборот данного клиента считался по всем орг а не по конкретной, тогда просто у всех скидок от суммы продаж оборот будет браться по всем орг (например).
Проблема не расчете скидок, проблема в перерасчете скидок. Карты лояльности жестко привязаны к конкретной организации, соответственно, должен быть дубляж такой же скидки по второй организации, причем с такими же настройками, а дальше уже нужно придумывать механизм записи накопления и списания баллов.
(7) В порядке обсуждения. Карта лояльности определяется для покупателя в ней есть еще и соглашение, однако оно может быть оформлено без организации. В самой скидке нет организации. Если расчет скидки опирается на объем продаж. Тогда логика расчета определяет оборот (сумму покупок) данного покупателя по данной организации (из документа).
В реквизите партнер карты лояльности сказано:
Отсюда можно сделать вывод что карта не более чем механизм идентификации партнера и контрагента при оформлении документа. Конкретно при считывании карты заполняются в документе поля партнер контрагент и соглашение. Организация не может быть заполнена, если она не указана в соглашении, так как ее больше нигде нет. Больше ни на что карта не влияет.
Посмотрел внимательнее код по КА 2.4. Организация есть у видов карт лояльности в реквизите сказано:
Так же приведу код из документа заказ клиента:
Я не вижу в коде жесткого изменения организации в документе на организацию из вида карты лояльности.
Следовательно теория о том, что карта лояльности привязана к конкретной организации требует доказательств. В архитектуре реквизитов карты лояльности я их не вижу, В код расчета скидки пока не полезу ибо он велик.
Как я понимаю суть в логике расчета самой скидки и она рассчитывает оборот продаж по организации и партнеру из документа в рамках которого выполняется расчет.
Ваша же цель подправить логику так чтобы обороты считались по партнеру из документа и всем организациям (либо их списку).
Дублировать карты не нужно. Записывать накопления тоже - надо просто найти то место в коде, которое калькулирует оборот продаж, поправить в нем отбор по организации, из переданных в расчет параметров (из документа), на нужный вам (или по всем орг или по списку). Если ничего больше не изменять то и никаких зависимостей не будет нарушено и не возникнут новые.
В реквизите партнер карты лояльности сказано:
Деловой партнер предприятия, которому осуществляются продажи по данной карте.
Автоматически подставляется в документы при считывании в документе карты лояльности.
Автоматически подставляется в документы при считывании в документе карты лояльности.
Отсюда можно сделать вывод что карта не более чем механизм идентификации партнера и контрагента при оформлении документа. Конкретно при считывании карты заполняются в документе поля партнер контрагент и соглашение. Организация не может быть заполнена, если она не указана в соглашении, так как ее больше нигде нет. Больше ни на что карта не влияет.
Посмотрел внимательнее код по КА 2.4. Организация есть у видов карт лояльности в реквизите сказано:
Данная организация будет использоваться при печати регистрационной анкеты карты лояльности.
Так же приведу код из документа заказ клиента:
&НаКлиенте
Процедура СчитанаКартаЛояльности(Знач Оповещение, КартаЛояльности)
ДанныеКартыЛояльности = КартыЛояльностиВызовСервера.ПолучитьДанныеКартыЛояльности(КартаЛояльности);
Если ЗначениеЗаполнено(ДанныеКартыЛояльности.Ссылка) Тогда
Если Не ДанныеКартыЛояльности.ПартнерДоступен Тогда
ПоказатьПредупреждение(Новый ОписаниеОповещения("СчитанаКартаЛояльностиЗавершение", ЭтотОбъект, Новый Структура("Оповещение", Оповещение)), НСтр("ru = 'Нет доступа к партнеру-владельцу карты лояльности.'"));
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(ДанныеКартыЛояльности.Партнер) Тогда // Обезличенная карта
СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма);
Модифицированность = Истина;
Объект.КартаЛояльности = КартаЛояльности;
ВыполнитьОбработкуОповещения(Оповещение);
Возврат;
ИначеЕсли Объект.Партнер <> ДанныеКартыЛояльности.Партнер Тогда // Партнер в карте отличается от партнера в документе.
Если ЗначениеЗаполнено(Объект.Партнер) Тогда
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Оповещение", Оповещение);
ДополнительныеПараметры.Вставить("КартаЛояльности", КартаЛояльности);
ДополнительныеПараметры.Вставить("ДанныеКартыЛояльности", ДанныеКартыЛояльности);
ПоказатьВопрос(
Новый ОписаниеОповещения("СчитанаКартаЛояльностиВопросЗавершение", ЭтотОбъект, ДополнительныеПараметры),
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Карта лояльности принадлежит партнеру ""%1"". Изменить партнера в документе?'"), ДанныеКартыЛояльности.Партнер),
РежимДиалогаВопрос.ДаНет);
Возврат;
КонецЕсли;
Иначе // Партнер в документе равен партнеру в карте.
ВопросОбИзмененииКонтрагента = Ложь;
Если ЗначениеЗаполнено(ДанныеКартыЛояльности.Контрагент)
И ЗначениеЗаполнено(Объект.Контрагент) И ДанныеКартыЛояльности.Контрагент <> Объект.Контрагент Тогда
ВопросОбИзмененииКонтрагента = Истина;
КонецЕсли;
ВопросОбИзмененииСоглашения = Ложь;
Если ИспользоватьСоглашенияСКлиентами И ЗначениеЗаполнено(ДанныеКартыЛояльности.Соглашение)
И ЗначениеЗаполнено(Объект.Соглашение) И ДанныеКартыЛояльности.Соглашение <> Объект.Соглашение Тогда
ВопросОбИзмененииСоглашения = Истина;
КонецЕсли;
Если ВопросОбИзмененииКонтрагента Или ВопросОбИзмененииСоглашения Тогда
Если ВопросОбИзмененииКонтрагента И ВопросОбИзмененииСоглашения Тогда
ТекстВопроса = НСтр("ru = 'Для карты лояльности заданы контрагент ""%1"" и соглашение ""%2"". Применить карту лояльности и подставить в документ контрагента ""%1"" и соглашение ""%2""?'");
ИначеЕсли ВопросОбИзмененииКонтрагента Тогда
ТекстВопроса = НСтр("ru = 'Для карты лояльности задан контрагент ""%1"". Применить карту лояльности и подставить в документ контрагента ""%1""?'");
ИначеЕсли ВопросОбИзмененииСоглашения Тогда
ТекстВопроса = НСтр("ru = 'Для карты лояльности задано соглашение ""%2"". Применить карту лояльности и подставить в документ соглашение ""%2""?'");
КонецЕсли;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Оповещение", Оповещение);
ДополнительныеПараметры.Вставить("КартаЛояльности", КартаЛояльности);
ДополнительныеПараметры.Вставить("ДанныеКартыЛояльности", ДанныеКартыЛояльности);
ПоказатьВопрос(
Новый ОписаниеОповещения("СчитанаКартаЛояльностиВопросЗавершение", ЭтотОбъект, ДополнительныеПараметры),
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстВопроса, ДанныеКартыЛояльности.Контрагент, ДанныеКартыЛояльности.Соглашение),
РежимДиалогаВопрос.ДаНет);
Возврат;
КонецЕсли;
КонецЕсли;
СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма);
Модифицированность = Истина;
Объект.КартаЛояльности = КартаЛояльности;
СчитанаКартаЛояльностиНаСервере(ДанныеКартыЛояльности);
КонецЕсли;
ВыполнитьОбработкуОповещения(Оповещение);
КонецПроцедуры
ПоказатьЯ не вижу в коде жесткого изменения организации в документе на организацию из вида карты лояльности.
Следовательно теория о том, что карта лояльности привязана к конкретной организации требует доказательств. В архитектуре реквизитов карты лояльности я их не вижу, В код расчета скидки пока не полезу ибо он велик.
Как я понимаю суть в логике расчета самой скидки и она рассчитывает оборот продаж по организации и партнеру из документа в рамках которого выполняется расчет.
Ваша же цель подправить логику так чтобы обороты считались по партнеру из документа и всем организациям (либо их списку).
Дублировать карты не нужно. Записывать накопления тоже - надо просто найти то место в коде, которое калькулирует оборот продаж, поправить в нем отбор по организации, из переданных в расчет параметров (из документа), на нужный вам (или по всем орг или по списку). Если ничего больше не изменять то и никаких зависимостей не будет нарушено и не возникнут новые.
(9) Посмотрите внимательно чего это форма.
Смотреть надо несколько глубже. А именно откуда берется организация при расчете оборота продаж покупателю. ну и если у вас есть база с данными на которых можно проверить - попробуйте считать карту лояльности в документ в котором указана организация отличная от заданной в виде карт лояльности - владельце этой карты.
Что произойдет?
Смотреть надо несколько глубже. А именно откуда берется организация при расчете оборота продаж покупателю. ну и если у вас есть база с данными на которых можно проверить - попробуйте считать карту лояльности в документ в котором указана организация отличная от заданной в виде карт лояльности - владельце этой карты.
Что произойдет?
(11)
То что сканер прочитает любую карту нет сомнения, но вот найдется ли скидка по этой карте?
ну и если у вас есть база с данными на которых можно проверить - попробуйте считать карту лояльности в документ в котором указана организация отличная от заданной в виде карт лояльности - владельце этой карты.
То что сканер прочитает любую карту нет сомнения, но вот найдется ли скидка по этой карте?
(14) Ну разумеется, я же с этим не спорю. Я просто задаюсь вопросом а на что кроме описанного в комментарии реквизита вида карт лояльности:
Влияет эта привязка? Вы думаете что на все. Я полагаю что ни на что.
Попробуйте считать карту лояльности в документ в котором указана организация отличная от заданной в виде карт лояльности - владельце этой карты.
Что произойдет?
Данная организация будет использоваться при печати регистрационной анкеты карты лояльности.
Влияет эта привязка? Вы думаете что на все. Я полагаю что ни на что.
Попробуйте считать карту лояльности в документ в котором указана организация отличная от заданной в виде карт лояльности - владельце этой карты.
Что произойдет?
(15)
Может быть.
Проверить в данный момент нет возможности.
Влияет эта привязка? Вы думаете что на все. Я полагаю что ни на что.
Попробуйте считать карту лояльности в документ в котором указана организация отличная от заданной в виде карт лояльности - владельце этой карты.
Попробуйте считать карту лояльности в документ в котором указана организация отличная от заданной в виде карт лояльности - владельце этой карты.
Может быть.
Проверить в данный момент нет возможности.
Действия скидок сохраняется в Регистре сведений ДействияСкидокНаценок, одно из измерений есть значение Справочника СоглашенияСКлиентами, которое соответственно привязывается к Организации. От привязки скидок и наценок к Организации никуда не уйти.
(19) Ну в соглашениях то организация поле не обязательное.
Я тут проверил ответ на свой вопрос...
Оно таки при вводе карты в документ проверяет совпадение организации в документе с орг в виде карт лояльности.
Умные люди писали. Фиг просто так на бок завалишь...
Но что поразительно что проверка происходит если организация указана однако заполнения ее при считывании карты не выполняется. То есть считав карту можно указать затем любую орг...
Я тут проверил ответ на свой вопрос...
Оно таки при вводе карты в документ проверяет совпадение организации в документе с орг в виде карт лояльности.
Умные люди писали. Фиг просто так на бок завалишь...
Но что поразительно что проверка происходит если организация указана однако заполнения ее при считывании карты не выполняется. То есть считав карту можно указать затем любую орг...
Прикрепленные файлы:
(21) не простыл. просто хотелось обойти с минимальными потерями и трудозатратами, но вывод понятен что довольно объёмная доработка получится. спасибо за чёткое пояснение всем. возможно придётся искать другой путь...до этого на 7.7 был реализован сей механизм но есть подозрение что не самыми типовыми средствами.
(22)
Извиняюсь. В принципе задача решаема, но не тривиальными методами и во сколько сей фрукт обойдется сказать трудно.
не простыл. просто хотелось обойти с минимальными потерями и трудозатратами, но вывод понятен что довольно объёмная доработка получится. спасибо за чёткое пояснение всем. возможно придётся искать другой путь...до этого на 7.7 был реализован сей механизм но есть подозрение что не самыми типовыми средствами.
Извиняюсь. В принципе задача решаема, но не тривиальными методами и во сколько сей фрукт обойдется сказать трудно.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот