Здравствуйте.
Подскажите как в системе реализован автоматический расчёт итоговой стоимости товара в зависимости от количества?
Реализовано посредством написания кода или просто создана зависимая деталь "Итого" от детали "Количества"?
Нужно создать дополнительную колонку, которая будет автоматически рассчитывать бонусы, в зависимости от суммы приобретённых продуктов.
Благодарю
Нравится
/**
* Обновляет значение итога.
*/
updateSummary: function() {
var summary = this.sandbox.publish("GetOrderProductSummary", null, [this.sandbox.id]);
this.set("TotalCount", summary.count);
this.set("TotalAmount", this.Ext.String.format("{0} {1}", summary.currency,
this.Terrasoft.getFormattedNumberValue(summary.amount || 0)));
this.set("SummaryLoaded", Boolean(summary.currency));
},
Это не он случайно?
Здравствуйте!
Итог рассчитывается после события сохранения записи в самом объекте "Заказ".
Для реализации Вашей задачи, создайте дробное поле "Только для чтения". Создайте бизнес процесс, который при изменении состояния счета будет рассчитывать и записывать значение в кастомное поле.
"Демьяник Алексей Олегович" написал:при изменении состояния счета
Только, наверное, при изменении суммы счёта
"Владимир Соколов" написал:
Демьяник Алексей Олегович пишет:
при изменении состояния счета
Только, наверное, при изменении суммы счёта
Зачем считать бонус, если счет не оплачен?:wink:
"Демьяник Алексей Олегович" написал:Здравствуйте!
Итог рассчитывается после события сохранения записи в самом объекте "Заказ".
Для реализации Вашей задачи, создайте дробное поле "Только для чтения". Создайте бизнес процесс, который при изменении состояния счета будет рассчитывать и записывать значение в кастомное поле.
Здравствуйте. А нельзя реализовать данный процесс не создавая счёт? Поставить зависимость колонки "Бонус" от колонки "Итого"?
Здравствуйте!
Уточните Вашу задачу, пожалуйста.
Не совсем понятно, что Вы пытаетесь реализовать - каким образом Вы заполните поле "Итого", если счет создан не будет?
"Демьяник Алексей Олегович" написал:Здравствуйте!
Уточните Вашу задачу, пожалуйста.
Не совсем понятно, что Вы пытаетесь реализовать - каким образом Вы заполните поле "Итого", если счет создан не будет?
В разделе "Заказы" при добавлении нового продукта в заказ. Колонка "Итого" автоматически показывает итого, в зависимости от кол-ва продуктов и их стоимости. В разделе "Продукт в заказе" будет добавлена новая колонка "Бонусы". Допустим, итог приобретённых продуктов составил 100 у.е., а бонусы составляют 1% от суммы, т.е. 1 у.е. Нужно, чтобы этот процент автоматически отображался.
Надеюсь понятно написал:biggrin:
Я не совсем понимаю почему Вы выбрали такую реализацию.
Есть объекты "Заказ" и "Продукт в заказе". Связь между этими продуктами "один ко многим", то есть один заказ может содержать несколько записей продуктов.
Если Вы хотите раздавать "плюшки" за каждый оплаченный заказ, то лучше создать колонку "Бонусы" в объекте "Заказ" и заполнять его, как 0,01*(Сумма по полю "Итого" объекта "Продукт в заказе" с фильтром Продукт в заказе.Заказ == Заказ.Id).
Если Вы добавите данное поле в объект "Продукт в заказе", то данные в этой колонке будут дублироваться.
Бизнес процесс:
Два стартовых сигнала:
0.А) После добавления записи в объект "Заказ"
0.Б) После изменения записи колонки "Итого" в объекте "Заказ"
1) Чтение данных по объекту "Продукт в заказе" в режиме "Функция" по полю "Итого" с фильтром Заказ == Id стартового сигнала
2) Изменение данных объекта "Заказ" в поле "Бонус" с фильтром Id == Id стартового сигнала
3) Конец процесса.
Я не совсем понимаю почему Вы выбрали такую реализацию.
Есть объекты "Заказ" и "Продукт в заказе". Связь между этими продуктами "один ко многим", то есть один заказ может содержать несколько записей продуктов.
Если Вы хотите раздавать "плюшки" за каждый оплаченный заказ, то лучше создать колонку "Бонусы" в объекте "Заказ".
Если Вы добавите данное поле в объект "Продукт в заказе", то данные в этой колонке будут дублироваться.
Бизнес процесс:
Два стартовых сигнала:
0.А) После добавления записи в объект "Заказ"
0.Б) После изменения записи колонки "Итого" в объекте "Заказ"
1) Чтение данных по объекту "Продукт в заказе" в режиме "Функция" по полю "Итого" с фильтром Заказ == Id стартового сигнала
2) Изменение данных объекта "Заказ" в поле "Бонус", как 0,01*(Параметр предыдущего чтения данных), с фильтром Id == Id стартового сигнала
3) Конец процесса.
"Ануфриев Дмитрий Юрьевич" написал:Нужно, чтобы этот процент автоматически отображался.
Отображения вам может не хватить. Потом понадобится аналитика. А через год изменится % для новых заказов, а для старых история должна сохраниться.
Поэтому нужно делать поле и заполнять его (легче всего в бизнес-процессе)
"Демьяник Алексей Олегович" написал:Я не совсем понимаю почему Вы выбрали такую реализацию.
Есть объекты "Заказ" и "Продукт в заказе". Связь между этими продуктами "один ко многим", то есть один заказ может содержать несколько записей продуктов.
Если Вы хотите раздавать "плюшки" за каждый оплаченный заказ, то лучше создать колонку "Бонусы" в объекте "Заказ".
Если Вы добавите данное поле в объект "Продукт в заказе", то данные в этой колонке будут дублироваться.
Бизнес процесс:
Два стартовых сигнала:
0.А) После добавления записи в объект "Заказ"
0.Б) После изменения записи колонки "Итого" в объекте "Заказ"1) Чтение данных по объекту "Продукт в заказе" в режиме "Функция" по полю "Итого" с фильтром Заказ == Id стартового сигнала
2) Изменение данных объекта "Заказ" в поле "Бонус", как 0,01*(Параметр предыдущего чтения данных), с фильтром Id == Id стартового сигнала
3) Конец процесса.
Посмотрите пожалуйста правильно ли создан БП?
[URL=http://hostingkartinok.com/show-image.php?id=ef6b4027874b7ea0ecce1a33a9…]
[URL=http://hostingkartinok.com/show-image.php?id=cdcd49f5b51b08f3f3c7542a36…]
[URL=http://hostingkartinok.com/show-image.php?id=80cd33c8e5ddfb82f8ab18e980…]
[URL=http://hostingkartinok.com/show-image.php?id=89532dc814cefe7d5820e49de3…]
Здравствуйте!
Неправильно! Такой процесс будет запускать сам себя!
1) В стартовом сигнале в поле "Должна быть изменена любая колонка из списка" выберите поле "Итого"
2) Чтение данных построено корректно
3) Так нельзя считать - создайте параметр бизнес процесса с типом Дробное число с двумя знаками после запятой. Перед элементом используйте элемент "Формула":
- В "Поле установить параметр в" укажите созданный параметр бизнес процесса
- В поле ниже укажите 0.01*[Читать данные продукта в заказе.Результат функции]
4) В элементе изменить данные выберите колонку "Бонусы", а в качестве значения укажите параметр процесса.
PS. Не уверен в "." в числе 0.01. Как вариант может быть 0,01.
PPS. 100% правильный вариант: [Читать данные продукта в заказе.Результат функции]/100
"Демьяник Алексей Олегович" написал:
3) Так нельзя считать - создайте параметр бизнес процесса с типом Дробное число с двумя знаками после запятой. Перед элементом используйте элемент "Формула":
- В "Поле установить параметр в" укажите созданный параметр бизнес процесса
- В поле ниже укажите 0.01*[Читать данные продукта в заказе.Результат функции]
4) В элементе изменить данные выберите колонку "Бонусы", а в качестве значения укажите параметр процесса.
PS. Не уверен в "." в числе 0.01. Как вариант может быть 0,01.
PPS. 100% правильный вариант: [Читать данные продукта в заказе.Результат функции]/100
Здравствуйте, Алексей. Понимаю, что достал, но пока не сделаю всё не отстану от вас))))
Объясните пожалуйста как добавить этот злополучный параметр бизнес-процесса?
"Ануфриев Дмитрий Юрьевич" написал:Объясните пожалуйста как добавить этот злополучный параметр бизнес-процесса?
Здравствуйте!
Вы можете найти инструкцию здесь.
"Демьяник Алексей Олегович" написал:
Ануфриев Дмитрий Юрьевич пишет:
Объясните пожалуйста как добавить этот злополучный параметр бизнес-процесса?
Здравствуйте!
Вы можете найти инструкцию здесь.
Большое спасибо, Алексей. Настроил как вы и написали. Всё работает!
Добрый день! Подскажите пжт, а как вы будете учитывать в БП удаление строк? сигналы на добавление и изменения понятны, а вот удаление нет. У меня похожая ситуация и нужно понять как реализовать рассчет количества с возможным удалением строк.
Демьяник Алексей, подскажите пжт, как учитывать в БП удаление строк? сигналы на добавление и изменения понятны, а вот удаление нет. У меня похожая ситуация и нужно понять как реализовать рассчет количества с возможным удалением строк.
Наталья Осянина пишет:
точно так же. Поставьте сигнал на удаление данных в объекте и уберите у него признак выполнения в фоновом режиме.
А если хотите посчитать записи без учёта удаленной, то добавьте в условие суммирования "не равно Id удалённой записи"