Автоматический подсчет суммы продуктов в счете

Добрый день!
В стандартной версии при добавлении продукта в счет и изменения его цены происходит автоматический пересчет общей суммы счета.
В каких скриптах это реализовано, где можно посмотреть - напишите, пожалуйста

Нравится

10 комментариев

Дарья, добрый день.
Функционал запрашиваемый вами реализован в схеме BaseProductDetailPageV2, в методе SetTotalAmount.
Спасибо.

Не могу найти такого метода в данной схеме, к сожалению.
весь список методов из схемы - во вложенном файле

Дарья, добрый день.
Данная схема находится в пакете UIv2.
Спасибо.

спасибо, такой метод в схеме, которая находится в пакете UIv2, увидела. Посмотрю

Добрый день! Это не совсем то.
Насколько я поняла, этот метод считает сумму конкретного продукта в счете на основании цены, налога и т.п.
Я имела в виду другое:
В стандартной версии при добавлении продукта в счет и изменения его цены, кол-ва и т.п. происходит автоматический пересчет общей суммы счета. ( не продукта в счета, а самой суммы счета).
Где это реализовано - в каких схемах,пакетах?

Дарья, напишите, пожалуйста, продукт и версию для которого необходима данная информация.
Спасибо.

Дарья, добрый вечер.
Высылаю код расчета общей суммы счета:

decimal sumTotalAmount = 0;
decimal sumPrimaryTotalAmount = 0;
var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "InvoiceProduct");
var totalAmountColumn = esq.AddColumn("TotalAmount");
var primaryTotalAmountColumn = esq.AddColumn("PrimaryTotalAmount");
var invoiceId = this.Entity.GetTypedColumnValue("InvoiceId");
esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Invoice", invoiceId));
var entityCollection = esq.GetEntityCollection(this.UserConnection);
if (entityCollection.Count > 0) {
foreach(var entity in entityCollection) {
sumTotalAmount += entity.GetTypedColumnValue(totalAmountColumn.Name);
sumPrimaryTotalAmount += entity.GetTypedColumnValue(primaryTotalAmountColumn.Name);
}
}
var update = new Update(context.UserConnection, "Invoice")
.Set("Amount",Column.Parameter(sumTotalAmount))
.Set("PrimaryAmount",Column.Parameter(sumPrimaryTotalAmount))
.Where("Id").IsEqual(Column.Parameter(invoiceId)) as Update;
update.Execute();

Версия 7.5.0.1122 omichannel
А в какой все-таки схеме данный код находится?

Дарья, данный код находится в схеме InvoiceProduct, в пакете Invoice.
Спасибо.

Показать все комментарии