03.03.2009, 13:21 | #1 |
Участник
|
Ошибка в механизме начисления пеней
Ax 3 SP 3
На днях обнаружилась одна ошибка в механизме начисления пеней нашим клиентам, функционал стандартный. Так вот, обо всём по порядку. 1) существует просроченная, несопоставленная накладная на отгрузку в CustTrans 2) в CustSettlement, соответственно ничего нет 3) к накладной существует строка в CustOpenTrans Далее, в конце месяца, запускаем механизм расчёта пеней, в результате действий которого заполняется поле CustTransOpen.LastInterestDate датой расчёта пеней (чтобы при последующих начислениях пеней, начислять их только на месяц расчётов пеней). В следующем месяце приходит клиентский платёж и ручками сопоставляется с накладной на всю сумму. 4) в CustSettlement появилась строка и поле CustSettlement.LastInterestDate инициализировалось датой из CustTransOpen.LastInterestDate 5) из CustTransOpen строчка пропала Потом шалудивые ручки берут и производят рассопоставление накладной и платежа. 6) в CustOpenTrans снова возникает строчка, но у неё уже дата CustTransOpen.LastInterestDate пустая! 7) затем заново сопоставляют накладную и платёж, и поле CustSettlement.LastInterestDate становится совершенно пустым. В результате чего пени на текущий месяц начислятся на весь период просрочки, за все просроченные дни предыдущего месяца + все дни текущего месяца до последнего полного закрытия накладной платежом, а должны начислиться только на просроченные дни текущего месяца. Вообщем: после рассопоставления в CustTransOpen возникает строка не в первозданном виде (как была до сопоставления накладной и патежа на всю сумму, теряется дата CustTransOpen.LastInterestDate). Это штатный глюк системы или таки внедрённый?
__________________
Самое полезное в жизни – это собственный опыт... |
|
03.03.2009, 13:43 | #2 |
Member
|
А почему вы считаете, что дата последнего расчета пени должна быть непустой?
Пересопоставление может много чего поменять с т.з. расчета пени (например, было сопоставлено как надо, рассопоставили, и нужно платить пеню теперь, или сопоставили с более ранней оплатой... а так у вас дата будет стоять и пеня не посчитается). По идее, нужно отменять расчет пени, и прогонять его заново с момента регистрации рассопоставленой проводки. Т.е. это больше похоже на багу дизайна чем на багу системы, IMHO.
__________________
С уважением, glibs® |
|
03.03.2009, 14:04 | #3 |
Участник
|
Упустил я один важный момент: рассопоставление происходило после того, как журнал по пеням был разнесён. Т.е. в момент его разноски, в поля CustSettlement.LastInterestDate и CustTransOpen.LastInterestDate записалась дата разноски журнала по пеням. Потом, в следующем месяце прошло сопоставление и рассопоставление. В резельтате, до этой операции мы имели в CustTransOpen.LastInterestDate дату разноски последнего журнала по пеням, а после этой операции мы дату потеряли. Отменить разнесённый журнал по пеням не представляется возможным. И получается что пени при последующих расчётах будут выставляться на большее количество дней. Вот както так.
__________________
Самое полезное в жизни – это собственный опыт... |
|