% ставка по депозитному договору
На страницу 1, 2 След.
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Ноя 03, 2011 08:16  % ставка по депозитному договору |
|
Полезность: Нет оценки
|
Добрый день.
Подскажите, плиз, есть ли в ЦФТ функция или библиотека которая вытаскивает % ставку по депозитному договору ЦИФРОЙ?
А то все базовые представления вытаскивают ссылку на справочник, а надо цифоркой.
Может я зря функцию рисовал в Оракле? |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Чт Ноя 03, 2011 08:46  Re: % ставка по депозитному договору |
|
Полезность: Нет оценки
|
yaffil пишет: | есть ли в ЦФТ функция или библиотека которая вытаскивает % ставку по депозитному договору ЦИФРОЙ? |
см.
::[PRC_SCHEME].[LIB].GetPrcRate
напр.
RetNum := ::[PRC_SCHEME].[LIB].GetPrcRate(dep.[PRC_DOG], P_ON_DATE ); |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Ноя 03, 2011 10:24  Re: % ставка по депозитному договору |
|
Полезность: Нет оценки
|
vtar пишет: |
см.
::[PRC_SCHEME].[LIB].GetPrcRate
|
Спасибо, а как правильно её использовать, а то если я 2 параметра использую, то сложные % ставки не подтягивает (см. скрин).
А если добавляю туда параметр остаток по депозитному счёту, то вообще половина ставок 0 становится. Вот так с 3мя параметрами выгледит столбец (смысел в том, что бегу по платежным документам где в дебете или кредите 423 счета, потому в селект кроме депозитов ничего не может попасть) :
,decode(substr(x.[ACC_DT].[MAIN_V_ID],1,2),42,::[PRC_SCHEME].[LIB].GetPrcRate(x.[PRODUCT_DT].[ACC_PROD] -> (DEPN)[PRC_DOG],x.[DATE_DOC],x.[ACC_DT].[SALDO]),::[PRC_SCHEME].[LIB].GetPrcRate(x.[PRODUCT_CT].[ACC_PROD] -> (DEPN)[PRC_DOG],x.[DATE_DOC]),x.[ACC_KT].[SALDO])
[/img] |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Чт Ноя 03, 2011 13:01  Re: % ставка по депозитному договору |
|
Полезность: Нет оценки
|
yaffil пишет: |
Спасибо, а как правильно её использовать, |
чтобы понять, как правильно, нужно услышать постановку задачи, приведенный **код наводит на мысли о не совсем верном методе решения  |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Ноя 03, 2011 13:29  Re: % ставка по депозитному договору |
|
Полезность: Нет оценки
|
vtar пишет: | чтобы понять, как правильно, нужно услышать постановку задачи, приведенный **код наводит на мысли о не совсем верном методе решения  |
Смысел представления такой, за определённый период вытащить все корреспонденции с 423 счетами, при этом половина столбцов из платёжных документов (дата проводки, сумма, дебет и кредит, назначение платежа ну и т.д) вторая половина из депозитных договоров (% ставка, вид договора, срок и т.д). Причём представление должно запускаться из платёжных документов.
Вытащил всё, а вот ставку не могу.
Decode стоит для того чтобы вытягивать продукт по дебету или кредиту соответственно.
Вот собственно весь код представления:
Код: |
type main is
select x( to_char(x.[DATE_DOC],'DD.MM.YYYY') :DATA_DOC
,x.[SUM] :DEBET
,x.[VALUTA].[CUR_SHORT] :DEBET_VAL
,x.[SUM_PO] :KREDIT
,x.[VALUTA_PO].[CUR_SHORT] :KREDIT_VAL
,x.[SUM_NT] :NACIONAL
,x.[NAZN] :NAZN_PLAT
,to_date(decode(substr(x.[ACC_DT].[MAIN_V_ID],1,2),42,x.[PRODUCT_DT].[ACC_PROD] -> (DEPN)[DATE_ENDING],x.[PRODUCT_CT].[ACC_PROD] -> (DEPN)[DATE_ENDING]),'DD.MM.YYYY') - to_date(decode(substr(x.[ACC_DT].[MAIN_V_ID],1,2),42,x.[PRODUCT_DT].[ACC_PROD] -> (DEPN)[DATE_BEGINING],x.[PRODUCT_CT].[ACC_PROD] -> (DEPN)[DATE_BEGINING]),'DD.MM.YYYY') :srok
,decode(substr(x.[ACC_DT].[MAIN_V_ID],1,2),42,x.[PRODUCT_DT].[ACC_PROD] -> (DEPN)[PRC_DOG],x.[PRODUCT_CT].[ACC_PROD] -> (DEPN)[PRC_DOG]) :PRC_STAVKA
-- ,decode(substr(x.[ACC_DT].[MAIN_V_ID],1,2),42,::[PRC_SCHEME].[LIB].GetPrcRate(x.[PRODUCT_DT].[ACC_PROD] -> (DEPN)[PRC_DOG],x.[DATE_DOC],x.[ACC_DT].[SALDO]),::[PRC_SCHEME].[LIB].GetPrcRate(x.[PRODUCT_CT].[ACC_PROD] -> (DEPN)[PRC_DOG],x.[DATE_DOC]),x.[ACC_KT].[SALDO])
,decode(substr(x.[ACC_DT].[MAIN_V_ID],1,2),42,x.[PRODUCT_DT].[ACC_PROD] -> (DEPN)[VID_DOG].[NAME],x.[PRODUCT_CT].[ACC_PROD] -> (DEPN)[VID_DOG].[NAME]) :VID_VKL
,decode(substr(x.[ACC_DT].[MAIN_V_ID],1,2),42,x.[PRODUCT_DT].[ACC_PROD] -> (DEPN)[DATE_BEGINING],x.[PRODUCT_CT].[ACC_PROD] -> (DEPN)[DATE_BEGINING]) :NACHALO
,decode(substr(x.[ACC_DT].[MAIN_V_ID],1,2),42,x.[PRODUCT_DT].[ACC_PROD] -> (DEPN)[DATE_ENDING],x.[PRODUCT_CT].[ACC_PROD] -> (DEPN)[DATE_ENDING]) :KONEC
) in ::[MAIN_DOCUM]
where to_date(x.[DATE_DOC],'DD.MM.YYYY')>= to_date (sys_context(user_context,'DATE_BEGIN'),'DD.MM.YYYY')
and to_date(x.[DATE_DOC],'DD.MM.YYYY')<= to_date (sys_context(user_context,'DATE_END'),'DD.MM.YYYY')
and (substr(x.[ACC_DT].[MAIN_V_ID],1,3) in (423,426) or substr(x.[ACC_KT].[MAIN_V_ID],1,3) in (423,426))
and substr(x.[NAZN],1,10) != 'Переоценка';
|
|
|
 |
pas Профи
Вступление в Клуб: 20.11.2007
|
Чт Ноя 03, 2011 13:36   |
|
Полезность: Нет оценки
|
DEPOSIT_MULT, DEPOSIT_PRIV, DEPOSIT_ORG смотрел? |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Ноя 03, 2011 13:47  % ставка по депозитному договору |
|
Полезность: Нет оценки
|
pas пишет: | DEPOSIT_MULT, DEPOSIT_PRIV, DEPOSIT_ORG смотрел? |
А чем они мне могут помочь?
По сути все данные есть, в том числе и для функции ::[PRC_SCHEME].[LIB].GetPrcRate
- вид есть, дата есть, сумму тоже вытащить можно по счёту. |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Чт Ноя 03, 2011 14:03   |
|
Полезность: Нет оценки
|
Рекомендую Вам начать со следующего
1) уточнить, процентная ставка реально плавающая от остатка депозита или все таки плавающая на момент заключения /пролонгации - от суммы договора [SUMMA_DOG]
2) как будут пользоваться представлением - если для уже проведенных документов, это одно, если хотят смотреть данные на еще не проведенном документе (или в обоих случаях) - это задача будет гораздо сложнее (например, в случае плавающей ставки от остатка депозита для проводки на внесение средств ) |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Ноя 03, 2011 14:13  % ставка по депозитному договору |
|
Полезность: Нет оценки
|
vtar пишет: | Рекомендую Вам начать со следующего
1) уточнить
2) как будут пользоваться представлением |
1.) Если ставка сложная, то ставка реально плавающая от остатка депозита (на вечер от даты проводки)
2) Смотрим документы только проведённые (условие дорисую, чтобы другие статусы не попадали) |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пн Ноя 07, 2011 08:37  % ставка по депозитному договору |
|
Полезность: Нет оценки
|
Ладно, буду тогда свою функцию использовать, т.к. как только в штатную ставиш сумму или сумму+срок - сваливаются половина договоров с простой % стакой - выдаёт 365%, мне бы такие %
Подскажите,пожалуйста, как из этого PL+ представления вызвать оракловую функцию?
Моя функция:
FUNCTION kav_depoz_prost_proc(depoz_id IN NUMBER,summa_dog IN NUMBER ) |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Пн Ноя 07, 2011 09:56  Re: % ставка по депозитному договору |
|
Полезность: Нет оценки
|
yaffil пишет: | Ладно, буду тогда свою функцию использовать, т.к. как только в штатную ставиш сумму или сумму+срок - сваливаются половина договоров с простой % стакой - выдаёт 365%, мне бы такие %
Подскажите,пожалуйста, как из этого PL+ представления вызвать оракловую функцию?
Моя функция:
FUNCTION kav_depoz_prost_proc(depoz_id IN NUMBER,summa_dog IN NUMBER ) |
Код: | ::[Имя класса].[имя операции(библиотеки)]. kav_depoz_prost_proc(парам.1, парам.2, ..., парам.N); |
_________________ всегда есть как минимум 2 выхода |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пн Ноя 07, 2011 10:02  Re: % ставка по депозитному договору |
|
Полезность: Нет оценки
|
Alexsey пишет: |
Код: | ::[Имя класса].[имя операции(библиотеки)]. kav_depoz_prost_proc(парам.1, парам.2, ..., парам.N); |
|
нет, я же говорю, она ОРАКЛОВАЯ, её нет в словаре. Мне её надо вызвать стандартным PL/SQL из pl+ представления |
|
 |
maestro Профи
Вступление в Клуб: 12.10.2010
|
Пн Ноя 07, 2011 10:22  Re: % ставка по депозитному договору |
|
Полезность: Нет оценки
|
yaffil пишет: | Alexsey пишет: |
Код: | ::[Имя класса].[имя операции(библиотеки)]. kav_depoz_prost_proc(парам.1, парам.2, ..., парам.N); |
|
нет, я же говорю, она ОРАКЛОВАЯ, её нет в словаре. Мне её надо вызвать стандартным PL/SQL из pl+ представления |
Оракловые функции вызываются без квадратных скобок.
Но, если я правильно понял, то эту функцию Вы разрабатываете, а значит её нужно поместить в PL+ библиотеку, и использовать вызов, как описал Алексей. |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пн Ноя 07, 2011 10:37  Re: % ставка по депозитному договору |
|
Полезность: Нет оценки
|
maestro пишет: |
Оракловые функции вызываются без квадратных скобок.
Но, если я правильно понял, то эту функцию Вы разрабатываете, а значит её нужно поместить в PL+ библиотеку, и использовать вызов, как описал Алексей. |
А мы можем разве ЦФТшные библиотеки править? Они же перезатерутся при обновлении. |
|
 |
markoff Участник - экстремал
Вступление в Клуб: 09.06.2009
|
Пн Ноя 07, 2011 10:51   |
|
Полезность: Нет оценки
|
Смысл их помещать в PL+ библиотеку? |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|