forum.bitel.ru http://forum.bitel.ru/ |
|
MPS sbrf формат REC_SUM http://forum.bitel.ru/viewtopic.php?f=18&t=13602 |
Страница 1 из 1 |
Автор: | afedorov [ 31 май 2023, 21:42 ] |
Заголовок сообщения: | MPS sbrf формат REC_SUM |
Как можно изменить формат в REC_SUM, чтобы десятичным разделителем стала точка? Сейчас там запятая. Сбер говорит сделайте точку и рекомендованная сумма будет показываться. Cумма вычисляется в событии и там формат "0.00" Код: public class RecSumEvent extends EventScriptBase<MPSBeforeRequestEvent> { private DecimalFormat sumFormat = new DecimalFormat("0.00") { }; public void onEvent( MPSBeforeRequestEvent event, Setup setup, ConnectionSet set ) throws Exception { /*вычисляем result*/ event.getResponse().getParameters().put( "SUM", this.sumFormat.format(result) ); } } В результате имеем: <response> <CODE>0</CODE> <MESSAGE>Договор найден, возможен прием платежей</MESSAGE> <FIO>ФИО</FIO> <BALANCE>0</BALANCE> <ACCOUNT_BALANCE>0</ACCOUNT_BALANCE> <SUM>390,00</SUM> <REC_SUM>390,00</REC_SUM> </response> |
Автор: | Phricker [ 01 июн 2023, 00:26 ] |
Заголовок сообщения: | Re: MPS sbrf формат REC_SUM |
Емнип DecimalFormat по-умолчанию использует системную локаль. И если там Ru - то скорее всего оттуда и растёт запятая. Если в data.properties не прописано Код: locale.default.decimalformatsymbols.decimalseparator=, то можно просто Код: import ru.bitel.common.Utils; ... event.getResponse().getParameters().put("SUM", Utils.formatCost(result)); Если прописано (чтобы в клиенте вместо точек была запятая во многих местах), то Код: Utils.formatBigDecimalSumm()
|
Автор: | afedorov [ 01 июн 2023, 13:58 ] |
Заголовок сообщения: | Re: MPS sbrf формат REC_SUM |
Я так понимаю там дальше, при формировании xml, сумма из строки опять в децимал превращается и форматируется системным форматом. Поэтому что-то форматировать в своем коде бесполезно. Пришлось поменять локаль. Код: locale.default.decimalformatsymbols.decimalseparator=. Стала точка. Надеюсь эта смена формата в других местах негативно не вылезет. Спасибо за подсказку. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |