[Home] [Help]
TRIGGER: APPS.XTR_AID_ROLLOVER_TRANS_T
Source
Description
"APPS"."XTR_AID_ROLLOVER_TRANS_T"
AFTER INSERT or DELETE
ON "XTR"."XTR_ROLLOVER_TRANSACTIONS#" FOR EACH ROW
Type
AFTER EACH ROW
Event
INSERT OR DELETE
Column
When
Referencing
REFERENCING NEW AS NEW OLD AS OLD
Body
declare
L_ACTION VARCHAR2(10);
L_AMOUNT NUMBER;
L_START_DATE DATE;
L_DEAL_NUMBER NUMBER;
L_TRANSACTION_NUMBER NUMBER;
L_YEAR_CALC_TYPE VARCHAR2(15);
L_CALC_BASIS VARCHAR2(15);
L_INTEREST_RATE NUMBER;
L_YEAR_BASIS NUMBER;
L_DEAL_SUBTYPE VARCHAR2(7);
L_STATUS_CODE VARCHAR2(10);
L_PRODUCT_TYPE VARCHAR2(10);
L_PORTFOLIO_CODE VARCHAR2(7);
L_CPARTY_CODE VARCHAR2(7);
L_MATURITY_DATE DATE;
L_DEAL_TYPE VARCHAR2(7);
L_COMPANY_CODE VARCHAR2(7);
L_CURRENCY VARCHAR2(15);
L_NO_OF_DAYS NUMBER;
L_YIELD_RATE NUMBER;
L_INTEREST NUMBER;
-- Added for Interest Override feature
L_DAY_COUNT_TYPE VARCHAR2(1) :=NULL;
L_FIRST_TRANS_FLAG VARCHAR2(1) := NULL;
--
--Added day_count_type for Interest Override feature
cursor get_year_calc_type is
select year_calc_type,year_basis,calc_basis,day_count_type
from xtr_deals
where deal_no=L_DEAL_NUMBER;
--Added for Intrest Override
cursor get_types is
select day_count_type
from xtr_deals
where deal_no=L_DEAL_NUMBER;
--
--
begin
if inserting then
L_INTEREST_RATE :=:NEW.INTEREST_RATE;
L_YEAR_CALC_TYPE :=:NEW.YEAR_CALC_TYPE;
L_START_DATE :=:NEW.START_DATE;
L_STATUS_CODE :=:NEW.STATUS_CODE;
L_DEAL_SUBTYPE :=:NEW.DEAL_SUBTYPE;
L_PRODUCT_TYPE :=:NEW.PRODUCT_TYPE;
L_PORTFOLIO_CODE :=:NEW.PORTFOLIO_CODE;
L_CPARTY_CODE :=:NEW.CPARTY_CODE;
L_DEAL_NUMBER :=:NEW.DEAL_NUMBER;
L_TRANSACTION_NUMBER :=:NEW.TRANSACTION_NUMBER;
L_MATURITY_DATE :=nvl(:NEW.NI_RENEG_DATE,:NEW.MATURITY_DATE);
L_AMOUNT :=:NEW.BALANCE_OUT;
L_DEAL_TYPE :=:NEW.DEAL_TYPE;
L_CURRENCY :=:NEW.CURRENCY;
L_COMPANY_CODE :=:NEW.COMPANY_CODE;
L_NO_OF_DAYS := :NEW.NO_OF_DAYS;
L_INTEREST := :NEW.INTEREST;
if L_DEAl_TYPE in('TMM','RTMM') then
L_ACTION :='UPDATE';
if nvl(:NEW.PRINCIPAL_ACTION,'@#@')='DECRSE' then
L_AMOUNT :=nvl(:NEW.BALANCE_OUT_BF,0)-nvl(:NEW.PRINCIPAL_ADJUST,0);
else
L_AMOUNT :=nvl(:NEW.BALANCE_OUT_BF,0)+nvl(:NEW.PRINCIPAL_ADJUST,0);
end if;
if L_DEAL_TYPE = 'RTMM' then
open get_year_calc_type;
fetch get_year_calc_type into L_YEAR_CALC_TYPE,L_YEAR_BASIS,
L_CALC_BASIS,
L_DAY_COUNT_TYPE; -- Added for Interest Override
close get_year_calc_type;
-- Added for Interest Override feature
-- For the TMM, get Day count type from XTR_DEALS table
elsif L_DEAL_TYPE = 'TMM' then
open get_types;
fetch get_types into L_DAY_COUNT_TYPE;
close get_types;
end if;
--
elsif L_DEAL_TYPE ='NI' then
-- NEW NI --
if L_DEAL_SUBTYPE in ('BUY', 'ISSUE') then -- if L_DEAL_SUBTYPE <>'S_SELL' then
L_ACTION :='INSERT';
L_AMOUNT :=nvl(:NEW.BALANCE_OUT,0) - nvl(:NEW.INTEREST, 0);
L_FIRST_TRANS_FLAG :='Y'; -- Added for Interest Override
open get_year_calc_type;
fetch get_year_calc_type into L_YEAR_CALC_TYPE,L_YEAR_BASIS,
L_CALC_BASIS,
L_DAY_COUNT_TYPE; -- Added for Interest Override
close get_year_calc_type;
end if;
-- Added for Interest Override feature
elsif L_DEAL_TYPE='ONC' then
open get_types;
fetch get_types into L_DAY_COUNT_TYPE;
close get_types;
L_FIRST_TRANS_FLAG := :NEW.FIRST_TRANSACTION_FLAG;
L_ACTION :='INSERT';
--
else
L_ACTION :='INSERT';
end if;
else
L_INTEREST_RATE :=:OLD.INTEREST_RATE;
L_YEAR_CALC_TYPE :=:OLD.YEAR_CALC_TYPE;
L_START_DATE :=:OLD.START_DATE;
L_STATUS_CODE :=:OLD.STATUS_CODE;
L_DEAL_SUBTYPE :=:OLD.DEAL_SUBTYPE;
L_PRODUCT_TYPE :=:OLD.PRODUCT_TYPE;
L_PORTFOLIO_CODE :=:OLD.PORTFOLIO_CODE;
L_CPARTY_CODE :=:OLD.CPARTY_CODE;
L_DEAL_NUMBER :=:OLD.DEAL_NUMBER;
L_TRANSACTION_NUMBER :=:OLD.TRANSACTION_NUMBER;
L_MATURITY_DATE :=nvl(:OLD.NI_RENEG_DATE,:OLD.MATURITY_DATE);
L_AMOUNT :=:OLD.BALANCE_OUT;
L_DEAL_TYPE :=:OLD.DEAL_TYPE;
L_CURRENCY :=:OLD.CURRENCY;
L_COMPANY_CODE :=:OLD.COMPANY_CODE;
L_INTEREST :=:OLD.INTEREST;
if L_DEAL_TYPE <> 'NI' then
L_ACTION :='DELETE';
end if;
end if;
if (L_DEAL_TYPE in ('ONC','TMM','RTMM') or
(L_DEAL_TYPE = 'NI' and L_DEAL_SUBTYPE in('BUY', 'ISSUE'))) -- Eliminate IRS deal type
and L_ACTION is not null then
XTR_COF_P.MAINTAIN_POSITION_HISTORY(
P_START_DATE => L_START_DATE,
P_MATURITY_DATE => L_MATURITY_DATE,
P_OTHER_DATE => NULL,
P_DEAL_NUMBER => L_DEAL_NUMBER,
P_TRANSACTION_NUMBER => L_TRANSACTION_NUMBER,
P_COMPANY_CODE => L_COMPANY_CODE,
P_CURRENCY => L_CURRENCY,
P_DEAL_TYPE => L_DEAl_TYPE,
P_DEAL_SUBTYPE => L_DEAL_SUBTYPE,
P_PRODUCT_TYPE => L_PRODUCT_TYPE,
P_PORTFOLIO_CODE => L_PORTFOLIO_CODE,
P_CPARTY_CODE => L_CPARTY_CODE,
P_CONTRA_CCY => NULL,
P_CURRENCY_COMBINATION => NULL,
P_ACCOUNT_NO => NULL,
P_TRANSACTION_RATE => L_INTEREST_RATE,
P_YEAR_CALC_TYPE => L_YEAR_CALC_TYPE,
P_BASE_REF_AMOUNT => L_AMOUNT,
P_BASE_RATE => NULL,
P_STATUS_CODE => L_STATUS_CODE,
P_INTEREST => L_INTEREST,
P_MATURITY_AMOUNT => NULL,
P_START_AMOUNT => NULL,
P_CALC_BASIS => L_CALC_BASIS,
P_CALC_TYPE => NULL,
P_ACTION => L_ACTION,
-- Added for Intrerest Override feature
P_DAY_COUNT_TYPE => L_DAY_COUNT_TYPE,
P_FIRST_TRANS_FLAG => L_FIRST_TRANS_FLAG
);
end if;
end;