|
![]() |
#1 |
Участник
|
После изменения энума ModuleInventPurchSales чтоб он был Extensible, нашли такой код в классе MCRCatalogAreaAnalysisDP, так как стал валится Compiler Warning: ExtensibleEnumInNumericalAssignment
X++: AmountMST cost = this.itemPrice(ModuleInventPurchSales::Invent); AmountMST sales = this.itemPrice(ModuleInventPurchSales::Sales); ... //Avoid division by zero if (this.itemPrice(ModuleInventPurchSales::Sales == 0)) { mcrCatalogAreaAnalysisTmp.CogsPercent = 0; } else { mcrCatalogAreaAnalysisTmp.CogsPercent = cost / Sales; } ![]() Последний раз редактировалось kashperuk; 17.07.2017 в 12:26. |
|
|
За это сообщение автора поблагодарили: Stitch_MS (2), gl00mie (2), skuull (2), macklakov (1). |
![]() |
#2 |
Участник
|
|
|
![]() |
#3 |
Участник
|
Цитата:
Это изменение отревьюило 2 человека.. То есть втроем, с учетом того что сам девелопер тоже правил, они не смогли нормально скобочки сосчитать, и их никак не удивила эта странная констркция со сравнением двух энумов.. ![]() |
|
![]() |
#4 |
Участник
|
Цитата:
![]() |
|
![]() |
#5 |
Участник
|
Цитата:
![]() |
|
![]() |
#6 |
Banned
|
Цитата:
![]() X++: AmountMST cost = this.itemPrice(ModuleInventPurchSales::Invent); AmountMST sales = this.itemPrice(ModuleInventPurchSales::Sales); ... //Avoid division by zero if (sales == 0) { mcrCatalogAreaAnalysisTmp.CogsPercent = 0; } else { mcrCatalogAreaAnalysisTmp.CogsPercent = cost / sales; } |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
![]() |
#7 |
NavAx
|
Цитата:
if (this.itemPrice(ModuleInventPurchSales::Sales) == 0) Такое случается по запаре. Ничего особенного. Но вот фикс шедеврален! Это же человек не просто колотил код на скорость. Это вдумчиво выловили баг, подумали над его природой и исправили. Кажется я начинаю понимать почему местный саппорт так неохотно репортит даже доказанные баги с указанием где что и как поломано в продуктовую команду.
__________________
Isn't it nice when things just work? |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
![]() |
#8 |
Участник
|
Как раз не вдумчиво. Механически заменили константу 0 на его аналог в енуме. Это чистой воды копи-пастинговый, рутинный подход. Программисты любят копи-паст, как ни крути.
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/ |
|
![]() |
#9 |
Участник
|
Да нет, не копи паст это. Просто человек пишет компилятор, фреймворк для екстеншенов для енумов. Он не знает и/или скорее всего не хочет знать ничего про цены и прочие MCR - этим кодом владеет команда MCR(условно говоря). Сейчас он поменял что-то в компиляторе и у него в некоторых местах ошибки компилятора. Править чужой код он не может, но надо сделать чтоб компилилось. Вот он и заменил цифру на енум, хоть оно и бестолково. По хорошему должен был кинуть багу на MCR что код походу неправильный. Но опять же, не факт что команда MCR будет править код, ведь клиенты баги не репортят, а там мало ли что кому кажется.
|
|
|
За это сообщение автора поблагодарили: Vadik (1), fed (1), macklakov (1), trud (1), Ace of Database (1). |