Здравствуйте. Уже создавал тему на подобии. Нужна помощь в создании строки расчёта с функцией "итоги". В строке будет рассчитываться общий закуп всех товаров в одном заказе.
Создана строка "Сумма закупа" (UsrTotal) с типом данных "Деньги". Она должна считать общую сумму затрат на покупку всех товаров в заказе.
Для этого созданы две строки "Покупная цена" (UsrPrice), где рассчитывается стоимость одного товара и "Итого дил." (UsrTotalDil), тут рассчитывается сумма закупа в зависимости от кол-ва товаров в строке.
В предыдущем посту писали, что итог рассчитывается из этой схемы:
Guid currencyId = Entity.GetTypedColumnValue("CurrencyId");
decimal currencyRate = Entity.GetTypedColumnValue("CurrencyRate");
var currencyEntity = UserConnection.EntitySchemaManager.GetInstanceByName("Currency").CreateEntity(UserConnection);
currencyEntity.FetchFromDB(currencyEntity.Schema.GetPrimaryColumnName(), currencyId, new[] { "Division" });
decimal division = currencyEntity.GetTypedColumnValue("Division");
decimal currencyFromPrimaryFactor = division!= 0? currencyRate / division : 0;
var update = new Update(UserConnection, "OrderProduct")
.Set("CurrencyId", Column.Parameter(currencyId))
.Set("CurrencyRate", Column.Parameter(currencyRate))
.Set("Price", Column.Parameter(currencyFromPrimaryFactor) * Column.SourceColumn("PrimaryPrice"))
.Set("Amount", Column.Parameter(currencyFromPrimaryFactor) * Column.SourceColumn("PrimaryAmount"))
.Set("DiscountAmount", Column.Parameter(currencyFromPrimaryFactor) * Column.SourceColumn("PrimaryDiscountAmount"))
.Set("TaxAmount", Column.Parameter(currencyFromPrimaryFactor) * Column.SourceColumn("PrimaryTaxAmount"))
.Set("TotalAmount", Column.Parameter(currencyFromPrimaryFactor) * Column.SourceColumn("PrimaryTotalAmount"))
.Where("OrderId").IsEqual(Column.Parameter(Entity.GetTypedColumnValue("Id"))) as Update;
update.Execute();
Буду весьма благодарен за помощь
Нравится
Здравствуйте,
А где вы пишите данный код, событийный бизнес-процесс объекта, какого объекта? по событию во время сохранения, после сохранения? И что не так с кодом? Что не получается, в чем трудность?
"Максим Шевченко" написал:Здравствуйте,
А где вы пишите данный код, событийный бизнес-процесс объекта, какого объекта? по событию во время сохранения, после сохранения? И что не так с кодом? Что не получается, в чем трудность?
Здравствуйте, Максим.
Бизнес-процесс объекта "Orders". После добавления продуктов в заказе. С кодом всё так. Это код от итогов в том же процессе объекта "Orders". Не получается написать код для нужного мне процесса. Как правильно подставить туда все данные, чтобы всё работало корректно?
"Ануфриев Дмитрий Юрьевич" написал:Не получается написать код для нужного мне процесса.
Это отдельная схема БП созданная в конфигурации? Схема БП со стартовым сигналом?
Если да, то читаете элементами чтения данных, считаете формулами или скрипт тасками, и пишите изменением или добавлением данных.
Не обязательно все делать кодом, дизайнер БП предоставляет много более удобных механизмов, подробнее:
https://academy.terrasoft.ua/documents/technic-bpms/7-8/obzor-vozmozhno…