|
17.07.2017, 12:23 | #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). |
17.07.2017, 14:52 | #2 |
Участник
|
|
|
17.07.2017, 16:03 | #3 |
Участник
|
Цитата:
Это изменение отревьюило 2 человека.. То есть втроем, с учетом того что сам девелопер тоже правил, они не смогли нормально скобочки сосчитать, и их никак не удивила эта странная констркция со сравнением двух энумов.. |
|
17.07.2017, 21:48 | #4 |
Участник
|
А сколько ещё изменений было в этом ревью ? Там же есть зависимость между длинной изменения и качеством его ревью
|
|
18.07.2017, 11:27 | #5 |
Участник
|
Еще где-то 10 других изменений. Я их побоялся смотреть
|
|
18.07.2017, 00:27 | #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). |
18.07.2017, 03:30 | #7 |
NavAx
|
Цитата:
if (this.itemPrice(ModuleInventPurchSales::Sales) == 0) Такое случается по запаре. Ничего особенного. Но вот фикс шедеврален! Это же человек не просто колотил код на скорость. Это вдумчиво выловили баг, подумали над его природой и исправили. Кажется я начинаю понимать почему местный саппорт так неохотно репортит даже доказанные баги с указанием где что и как поломано в продуктовую команду.
__________________
Isn't it nice when things just work? |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
18.07.2017, 13:02 | #8 |
Участник
|
Как раз не вдумчиво. Механически заменили константу 0 на его аналог в енуме. Это чистой воды копи-пастинговый, рутинный подход. Программисты любят копи-паст, как ни крути.
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/ |
|
18.07.2017, 16:49 | #9 |
Участник
|
Да нет, не копи паст это. Просто человек пишет компилятор, фреймворк для екстеншенов для енумов. Он не знает и/или скорее всего не хочет знать ничего про цены и прочие MCR - этим кодом владеет команда MCR(условно говоря). Сейчас он поменял что-то в компиляторе и у него в некоторых местах ошибки компилятора. Править чужой код он не может, но надо сделать чтоб компилилось. Вот он и заменил цифру на енум, хоть оно и бестолково. По хорошему должен был кинуть багу на MCR что код походу неправильный. Но опять же, не факт что команда MCR будет править код, ведь клиенты баги не репортят, а там мало ли что кому кажется.
|
|
|
За это сообщение автора поблагодарили: Vadik (1), fed (1), macklakov (1), trud (1), Ace of Database (1). |