Мне тоже кажется, что
switch(true), в некоторых случаях, повышает удобочитаемость кода.
Только в данном примере других неизящностей хватает:
X++:
if (_ledgerJournalTrans_Project.CostPrice < 0)
_ledgerJournalTrans_Project.CostPrice = - _ledgerJournalTrans_Project.CostPrice;
Вместо abs(...)
В одних случаях с нулем сравнивается прямо (что, на мой взгляд более понятно), в других полагаются на приведение числа к логическому типу:
X++:
_ledgerJournalTrans_Project.Qty == 0
X++:
!_ledgerJournalTrans.AmountCurDebit