CftClub.ru
Клуб специалистов ЦФТ-Банк

Ошибка определения ставки при досрочном расторжении депозита

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Настройка и сопровождение
Предыдущая тема :: Следующая тема  
Автор Сообщение
dnk_dz
Эксперт
Резидент CftClub
Совладелец


Вступление в Клуб: 19.09.2007
СообщениеПт Окт 17, 2008 07:02   Ошибка определения ставки при досрочном расторжении депозита Ответить с цитатой
Полезность: 2
Зарегистрировал несоответствие BS00083023.
Описание:
Если штрафная ставка определяется в момент расторжения исходя из фактического срока действия договора (из массива штрафная ставка от срока вида депозитного договора), то не учитывается что в массиве процентных схем имеются записи для одного срока, но с разными датами начала действия процентной схемы.

Предложения по реализации:
Исправить функцию ::[DEPN].[LIB_01].GetPenySch следующим образом (исправления помечены ++КОУ):
Код:

Function GetPenySch(IdDepn ref [DEPN], OnDate date) return [REF_PRC_SCH] is
Sr number;
Begin
 if IdDepn.[GET_BOOL]('CRASH_WITHOUT_PROL', OnDate) then
  Sr := OnDate - IdDepn.[GET_DATE]('FIRST_DATE_BEGIN', OnDate);
 else
  Sr := OnDate - nvl(IdDepn.[GET_DATE]('LAST_PROL', OnDate), IdDepn.[DATE_BEGIN]);
 end if;
 for ( select Dep( Dep.[PENY_BY_SR]     : PenyBySr,
      Dep.[VID_DOG].[PENALTY_BY_SR] : VDPenyBySr,
      Dep.[SUMMA_DOG]     : Summa,
      Dep.[DATE_BEGIN]     : DATE_BEGIN, -- ++КОУ. Корпушов
      Dep.[FINTOOL]     : Fintool
      )
   in ::[DEPN] all
   where Dep = IdDepn
  )
 loop
  for ( select Sch(Sch.[PRC_SCH] : Id) in ::[HIS_PRC_SCH_REC] all
    where Sch%collection in (Dep.PenyBySr, Dep.VDPenyBySr)
    and Sch.[PRC_SCH] is not null
    and (Sch.[TERM].[NUM_INTERVALS] is not null or Sch.[ADD_DAYS] is not null)
    and nvl(::[PS].[LIB].get_days(Sch.[TERM].[NUM_INTERVALS], Sch.[TERM].[UNIT_INTERVALS], OnDate), 0) + nvl(Sch.[ADD_DAYS], 0) <= Sr
    and (Sch.[SUMMA] is null or Sch.[SUMMA] <= Dep.Summa)
    and (Sch.[CURRENCY] is null or Sch.[CURRENCY] = Dep.Fintool)
    and Sch.[DATE] < Dep.[DATE_BEGIN] -- ++КОУ. Корпушов
    order by decode(Sch%collection, Dep.PenyBySr, 1, 2),
      Sch.[DATE] desc, -- ++КОУ. Корпушов
       nvl(::[PS].[LIB].get_days(Sch.[TERM].[NUM_INTERVALS], Sch.[TERM].[UNIT_INTERVALS], OnDate), 0) + nvl(Sch.[ADD_DAYS], 0) desc,
       nvl(Sch.[SUMMA], 0) desc,
       nvl(Sch.[CURRENCY], 0) desc
   )
  loop
   return Sch.Id;
  end loop;
 end loop;
 return null;
End;;
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Настройка и сопровождение Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru