AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.01.2020, 16:37   #1  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Multi currency and fetch xml
Дорогие господа!

Как-то раньше организации со множеством валют обходили меня стороной, но в данном проекте все-таки настигли В организации основная валюта - доллар США, а пользователи работают с канадским долларом.

Суть проблемы следующая: есть quote и связанные продукты, надо высчитывать total по продуктам, к сожалению, там не просто всего лишь sum, но и дополнительно есть коэффициенты которые надо рассчитывать и умножать этот total, что-то типа (total = sum * discount + tax ), так бы логично было использовать rollup fields

Выше были лирика, проблема в том что fetch xml sum возвращает сумму по данному запросу в базовой валюте.

Насколько правильно умножать данную сумму в базовой валюте на рейт?
Старый 29.01.2020, 18:06   #2  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Цитата:
Сообщение от Ion Посмотреть сообщение
Дорогие господа!

Как-то раньше организации со множеством валют обходили меня стороной, но в данном проекте все-таки настигли В организации основная валюта - доллар США, а пользователи работают с канадским долларом.

Суть проблемы следующая: есть quote и связанные продукты, надо высчитывать total по продуктам, к сожалению, там не просто всего лишь sum, но и дополнительно есть коэффициенты которые надо рассчитывать и умножать этот total, что-то типа (total = sum * discount + tax ), так бы логично было использовать rollup fields

Выше были лирика, проблема в том что fetch xml sum возвращает сумму по данному запросу в базовой валюте.

Насколько правильно умножать данную сумму в базовой валюте на рейт?
В общем умножение на рейт нас не спасет, т.к. все равно теряется точность и махинации Math.Round не спасет.

В общем, прийдется пожертовать перфомансом ну и суммировать с помощью LINQ

X++:
            var quote = _saleProductRepository.GetSaleProductsByQuoteId(quoteId);
            var total = quote.Sum(e => e?.GetAttributeValue<Money>("total")?.Value ?? 0.0M);
            var estimatedtax = quote.Sum(e => e?.GetAttributeValue<Money>("estimatedtax")?.Value ?? 0.0M);
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Microsoft Dynamics CRM Team Blog: Writing a Multi-Currency Aware Roll-up Plug-in Blog bot Dynamics CRM: Blogs 0 25.06.2011 00:11
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:28.