DBA Data[Home] [Help]

APPS.XTR_COF_P SQL Statements

The following lines contain the word 'select', 'insert', 'update' or 'delete':

Line: 60

  select s.HCE_RATE,s.ROUNDING_FACTOR
   from XTR_MASTER_CURRENCIES_V s
   where s.CURRENCY = P_CURRENCY;
Line: 111

    select rowid, as_at_date
      from XTR_POSITION_HISTORY
       where AS_AT_DATE >= V_START_DATE
         and AS_AT_DATE < V_END_DATE
         and DEAL_TYPE = V_DEAL_TYPE
         and DEAL_NUMBER = V_DEAL_NUMBER
         and TRANSACTION_NUMBER = V_TRANSACTION_NUMBER
       order by AS_AT_DATE
        for update of BASE_REF_AMOUNT NOWAIT;
Line: 129

    select rowid, as_at_date
      from XTR_POSITION_HISTORY
       where AS_AT_DATE >= V_START_DATE
         and AS_AT_DATE < V_END_DATE
         and DEAL_TYPE = V_DEAL_TYPE
         and DEAL_NUMBER = V_DEAL_NUMBER
       order by AS_AT_DATE
        for update of BASE_REF_AMOUNT NOWAIT;
Line: 146

    select rowid, as_at_date
      from XTR_POSITION_HISTORY
       where AS_AT_DATE >= V_START_DATE
         and AS_AT_DATE < V_END_DATE
         and DEAL_TYPE = V_DEAL_TYPE
         and COMPANY_CODE = V_COMPANY_CODE
         and ACCOUNT_NO = V_ACCOUNT_NO
       order by AS_AT_DATE
        for update of BASE_REF_AMOUNT NOWAIT;
Line: 163

    select rowid, as_at_date
      from XTR_POSITION_HISTORY
       where AS_AT_DATE >= V_START_DATE
         and AS_AT_DATE < V_END_DATE
         and DEAL_TYPE = V_DEAL_TYPE
         and DEAL_NUMBER = V_DEAl_NUMBER
       order by AS_AT_DATE
        for update of BASE_REF_AMOUNT NOWAIT;
Line: 178

   is one to one.  Therefore it is much more effecient to update XTR_COST_OF_FUNDS at the same time
   we update XTR_POSITION_HISTORY.  Block update.   However to do this it was necessicary to duplicate
   some of the logic from maintain_cof procedure.  This procedure is for IG deals and only IG deals.
   In order to use this hack, the developer must adhere to the following requirements and must not
   deviate or modify them.  Be careful when making modifications to any of the affected code areas so
   as not to violate these assumptions.

   First, INSERT and UPDATE for IG deals are executed ONLY by the maintain position history procedure.
   The maintain COF procedure will do no processing for IG deals for INSERT and UPDATE but will continue
   to be responsible for IG DELETEs.  Call MAINTAIN_COF_IG for IG deals and IG deals only.  Position
   History is now responsible for IG data in COF so it must not forget to call this function for INSERT
   and UPDATE.  For anyone writing SQL upgrade scripts, if data is inserted or updated in XTR_POSITION_HISTORY
   for IG deals then make sure the snapshot of COF is updated appropriately.
*/

  procedure maintain_cof_ig is

    l_fac number;
Line: 207

      select hce_rate,rounding_factor
      from XTR_MASTER_CURRENCIES_V
      where currency=l_in_currency;
Line: 217

        select ROWID,AS_AT_DATE
          from XTR_COST_OF_FUNDS
           where AS_AT_DATE >= V_START_DATE
             and AS_AT_DATE < V_END_DATE
             and DEAL_TYPE = V_DEAL_TYPE
             --and DEAL_SUBTYPE = V_DEAL_SUBTYPE /* IG DEAL HAS ONE AND ONLY ONE ENTRY. UPDATE RESPECTIVELY */
             and COMPANY_CODE = V_COMPANY_CODE
             and CURRENCY = V_CURRENCY
             --and nvl(CURRENCY_COMBINATION,'%')=nvl(V_CURRENCY_COMBINATION,'%') /* IG, NOT FX */
             --and nvl(PRODUCT_TYPE,'%') = nvl(V_PRODUCT_TYPE,'%') /* SAME AS DEAL_SUBTYPE */
             --and nvl(PORTFOLIO_CODE,'%') = nvl(V_PORTFOLIO_CODE,'%') /* SAME AS DEAL_SUBTYPE */
             and nvl(PARTY_CODE,'%') = nvl(V_CPARTY_CODE,'%')
            for update of GROSS_PRINCIPAL NOWAIT;
Line: 250

       /* all dates not in the table are saved in T_AS_AT_DATE_INS to be inserted */
       FOR I IN 1..(L_END_DATE-L_REF_DATE) LOOP
         IF N_COF_AS_AT_DATE_CP <= N_COF_COUNTER AND T_COF_AS_AT_DATE(N_COF_AS_AT_DATE_CP)=L_REF_DATE+I-1 THEN
           N_COF_AS_AT_DATE_CP:=N_COF_AS_AT_DATE_CP+1;
Line: 261

            update XTR_COST_OF_FUNDS
            set GROSS_PRINCIPAL = L_BASE_REF_AMOUNT,
              HCE_GROSS_PRINCIPAL = L_HCE_BASE_REF_AMOUNT,
              WEIGHTED_AVG_PRINCIPAL = L_WEIGHTED_AVG_PRIN,
              AVG_INTEREST_RATE = L_CONVERT_RATE,
              BASE_WEIGHTED_AVG_PRINCIPAL = L_BASE_WEIGHTED_AVG_PRIN,
              AVG_BASE_RATE = P_BASE_RATE,
              INTEREST = L_DAILY_INT,
              HCE_INTEREST = L_HCE_INT,
              DEAL_SUBTYPE = L_DEAL_SUBTYPE,
              PRODUCT_TYPE = P_PRODUCT_TYPE,
              PORTFOLIO_CODE = P_PORTFOLIO_CODE
            where rowid=T_COF_ROWID(i);
Line: 276

            insert into XTR_COST_OF_FUNDS
             (as_at_date,company_code,deal_type,
              deal_subtype,party_code,portfolio_code,product_type,
              currency,currency_combination,contra_ccy,
              account_no,created_on,
              gross_principal,hce_gross_principal,
              weighted_avg_principal,avg_interest_rate,interest,hce_interest,
              base_weighted_avg_principal,avg_base_rate, gross_base_amount,
              gross_contra_trans_amount, gross_contra_spot_amount)
            values(
               T_COF_AS_AT_DATE_INS(i),
               P_COMPANY_CODE,
               P_DEAL_TYPE,
               L_DEAL_SUBTYPE,
               P_CPARTY_CODE,
               P_PORTFOLIO_CODE,
               P_PRODUCT_TYPE,
               P_CURRENCY,
               NULL,
               P_CONTRA_CCY,
               P_ACCOUNT_NO,
               sysdate,
               L_BASE_REF_AMOUNT,
               L_HCE_BASE_REF_AMOUNT,
               L_WEIGHTED_AVG_PRIN,
               L_CONVERT_RATE, --avg_int_rate
               L_DAILY_INT,         -- interest
               L_HCE_INT,     -- hce_interest
               L_BASE_WEIGHTED_AVG_PRIN,
               P_BASE_RATE, -- avg_base_rate
               NULL,  -- gross_base_amount
               NULL, --gross_contra_trans
               NULL --gross_contra_spot
               );
Line: 467

/* INSERT     */
/**************/
  if P_ACTION='INSERT' and P_STATUS_CODE='CURRENT' then

       L_DEAL_SUBTYPE := P_DEAL_SUBTYPE;
Line: 495

           insert into XTR_POSITION_HISTORY(
             AS_AT_DATE,
             DEAL_TYPE,
             DEAL_NUMBER,
             TRANSACTION_NUMBER,
             COMPANY_CODE,
             CPARTY_CODE,
             DEAL_SUBTYPE,
             PRODUCT_TYPE,
             PORTFOLIO_CODE,
             CURRENCY,
             CONTRA_CCY,
             CURRENCY_COMBINATION,
             YEAR_CALC_TYPE,
             ACCOUNT_NO,
             BASE_REF_AMOUNT,
             HCE_BASE_REF_AMOUNT,
             TRANSACTION_RATE,
             BASE_RATE,
	     INTEREST,
	     HCE_INTEREST)
          values(
             T_AS_AT_DATE(i),
             P_DEAL_TYPE,
             P_DEAL_NUMBER,
             P_TRANSACTION_NUMBER,
             P_COMPANY_CODE,
             P_CPARTY_CODE,
             L_DEAL_SUBTYPE,
             P_PRODUCT_TYPE,
             P_PORTFOLIO_CODE,
             P_CURRENCY,
             P_CONTRA_CCY,
             P_CURRENCY_COMBINATION,
             P_YEAR_CALC_TYPE,
             P_ACCOUNT_NO,
             L_BASE_REF_AMOUNT,
             L_HCE_BASE_REF_AMOUNT,
             L_CONVERT_RATE,
             P_BASE_RATE,
	     L_DAILY_INT,
 	     L_HCE_INT);
Line: 543

          insert into XTR_POSITION_HISTORY(
             AS_AT_DATE,
             DEAL_TYPE,
             DEAL_NUMBER,
             TRANSACTION_NUMBER,
             COMPANY_CODE,
             CPARTY_CODE,
             DEAL_SUBTYPE,
             PRODUCT_TYPE,
             PORTFOLIO_CODE,
             CURRENCY,
             CONTRA_CCY,
             CURRENCY_COMBINATION,
             YEAR_CALC_TYPE,
             ACCOUNT_NO,
             BASE_REF_AMOUNT,
             HCE_BASE_REF_AMOUNT,
             TRANSACTION_RATE,
             BASE_RATE,
	     INTEREST,
	     HCE_INTEREST)
          values(
             L_AS_AT_DATE,
             P_DEAL_TYPE,
             P_DEAL_NUMBER,
             P_TRANSACTION_NUMBER,
             P_COMPANY_CODE,
             P_CPARTY_CODE,
             decode(P_DEAL_TYPE,
                  'CA',decode(sign(nvl(P_BASE_REF_AMOUNT,0)),-1,'FUND','INVEST'),
                  'IG',decode(sign(nvl(P_BASE_REF_AMOUNT,0)),-1, 'FUND','INVEST'),
                                                        P_DEAL_SUBTYPE),  -- bug 2345708
             P_PRODUCT_TYPE,
             P_PORTFOLIO_CODE,
             P_CURRENCY,
             P_CONTRA_CCY,
             P_CURRENCY_COMBINATION,
             P_YEAR_CALC_TYPE,
             P_ACCOUNT_NO,
             P_BASE_REF_AMOUNT,
             L_HCE_BASE_REF_AMOUNT,
             decode(P_DEAL_TYPE, 'FX', P_TRANSACTION_RATE, L_CONVERT_RATE),
             P_BASE_RATE,
	     decode(P_DEAL_TYPE, 'FX', 0, L_DAILY_INT),
 	     decode(P_DEAL_TYPE, 'FX', 0, L_HCE_INT));
Line: 594

/* DELETE     */
/**************/
  elsif P_ACTION = 'DELETE' then
       if P_DEAL_TYPE='CA' then
         delete from XTR_POSITION_HISTORY
            where DEAL_TYPE='CA'
               and AS_AT_DATE >= P_START_DATE
               and ACCOUNT_NO = P_ACCOUNT_NO
               and COMPANY_CODE = P_COMPANY_CODE;
Line: 604

         delete from XTR_POSITION_HISTORY
            where DEAL_TYPE='IG'
               and AS_AT_DATE >= P_START_DATE
               and DEAL_NUMBER = P_DEAL_NUMBER;
Line: 611

           delete from XTR_POSITION_HISTORY
           where AS_AT_DATE >= L_END_DATE
             and DEAL_TYPE = P_DEAL_TYPE
             and DEAL_NUMBER = P_DEAL_NUMBER
             and TRANSACTION_NUMBER = P_TRANSACTION_NUMBER;
Line: 626

		 update XTR_POSITION_HISTORY
		   set COMPANY_CODE = P_COMPANY_CODE,
		   CPARTY_CODE  = P_CPARTY_CODE,
		   DEAL_SUBTYPE = p_deal_subtype,
		   PRODUCT_TYPE = P_PRODUCT_TYPE,
		   PORTFOLIO_CODE = P_PORTFOLIO_CODE,
		   CURRENCY = P_CURRENCY,
		   CURRENCY_COMBINATION = P_CURRENCY_COMBINATION,
		   YEAR_CALC_TYPE = P_YEAR_CALC_TYPE,
		   ACCOUNT_NO = P_ACCOUNT_NO,
		   BASE_REF_AMOUNT = p_base_ref_amount,
		   HCE_BASE_REF_AMOUNT = l_hce_base_ref_amount,
		   BASE_RATE = p_base_rate,
		   TRANSACTION_RATE =  l_convert_rate,
		   INTEREST = l_daily_int,
		   HCE_INTEREST = l_hce_int
		   where rowid=T_ROWID(I);
Line: 645

          delete from XTR_POSITION_HISTORY
           where DEAL_NUMBER = P_DEAL_NUMBER
             and DEAL_TYPE = P_DEAL_TYPE
             and TRANSACTION_NUMBER = P_TRANSACTION_NUMBER;
Line: 652

          delete from XTR_POSITION_HISTORY
           where DEAL_NUMBER = P_DEAL_NUMBER
             and DEAL_TYPE = P_DEAL_TYPE
             and TRANSACTION_NUMBER = P_TRANSACTION_NUMBER;
Line: 660

           delete from XTR_POSITION_HISTORY
           where AS_AT_DATE >= L_END_DATE
             and DEAL_NUMBER = P_DEAL_NUMBER
             and DEAL_TYPE = P_DEAL_TYPE
             and TRANSACTION_NUMBER = P_TRANSACTION_NUMBER;
Line: 666

            delete from XTR_POSITION_HISTORY
             where DEAL_NUMBER = P_DEAL_NUMBER
               and DEAL_TYPE = P_DEAL_TYPE
               and TRANSACTION_NUMBER = P_TRANSACTION_NUMBER;
Line: 674

           delete from XTR_POSITION_HISTORY
           where AS_AT_DATE >= L_END_DATE
             and DEAL_NUMBER = P_DEAL_NUMBER
             and DEAL_TYPE = P_DEAL_TYPE
             and TRANSACTION_NUMBER = P_TRANSACTION_NUMBER;
Line: 680

             delete from XTR_POSITION_HISTORY
             where DEAL_TYPE = P_DEAL_TYPE
               and DEAL_NUMBER = P_DEAL_NUMBER;
Line: 687

           delete from XTR_POSITION_HISTORY
           where AS_AT_DATE >= L_END_DATE
             and DEAL_TYPE = P_DEAL_TYPE
             and DEAL_NUMBER = P_DEAL_NUMBER
             and TRANSACTION_NUMBER = P_TRANSACTION_NUMBER;
Line: 693

            delete from XTR_POSITION_HISTORY
             where DEAL_NUMBER = P_DEAL_NUMBER
               and DEAL_TYPE = P_DEAL_TYPE
               and TRANSACTION_NUMBER = P_TRANSACTION_NUMBER;
Line: 701

/* UPDATE     */
/**************/
  elsif  P_ACTION='UPDATE' then

       if P_DEAL_TYPE NOT in('TMM','RTMM','CA','IG') then
          open CHK_LOCK_ROWS_ONC(L_REF_DATE,L_END_DATE,P_DEAL_TYPE,P_DEAL_NUMBER,
           P_TRANSACTION_NUMBER,P_COMPANY_CODE);
Line: 732

       /* all dates not in the table are saved in T_AS_AT_DATE_INS to be inserted */
       FOR I IN 1..(L_END_DATE-L_REF_DATE) LOOP
         IF N_AS_AT_DATE_CP <= N_COUNTER AND T_AS_AT_DATE(N_AS_AT_DATE_CP)=L_REF_DATE+I-1 THEN
           N_AS_AT_DATE_CP:=N_AS_AT_DATE_CP+1;
Line: 765

            update XTR_POSITION_HISTORY
              set  -- COMPANY_CODE removed from update because it cannot change and it was causing an index to be recalculated
                CPARTY_CODE  = P_CPARTY_CODE,
                DEAL_SUBTYPE = L_DEAL_SUBTYPE,
                PRODUCT_TYPE = P_PRODUCT_TYPE,
                PORTFOLIO_CODE = P_PORTFOLIO_CODE,
                CURRENCY = P_CURRENCY,
                CURRENCY_COMBINATION = P_CURRENCY_COMBINATION,
                YEAR_CALC_TYPE = P_YEAR_CALC_TYPE,
                ACCOUNT_NO = P_ACCOUNT_NO,
                BASE_REF_AMOUNT = L_BASE_REF_AMOUNT,
                HCE_BASE_REF_AMOUNT = L_HCE_BASE_REF_AMOUNT,
                BASE_RATE = P_BASE_RATE,
                TRANSACTION_RATE = L_CONVERT_RATE,
		INTEREST = L_DAILY_INT,
		HCE_INTEREST = L_HCE_INT
             where rowid=T_ROWID(I);
Line: 785

           insert into XTR_POSITION_HISTORY(
             AS_AT_DATE,
             DEAL_TYPE,
             DEAL_NUMBER,
             TRANSACTION_NUMBER,
             COMPANY_CODE,
             CPARTY_CODE,
             DEAL_SUBTYPE,
             PRODUCT_TYPE,
             PORTFOLIO_CODE,
             CURRENCY,
             CONTRA_CCY,
             CURRENCY_COMBINATION,
             YEAR_CALC_TYPE,
             ACCOUNT_NO,
             BASE_REF_AMOUNT,
             HCE_BASE_REF_AMOUNT,
             TRANSACTION_RATE,
             BASE_RATE,
	     INTEREST,
	     HCE_INTEREST)
          values(
             T_AS_AT_DATE_INS(I),
             P_DEAL_TYPE,
             P_DEAL_NUMBER,
             P_TRANSACTION_NUMBER,
             P_COMPANY_CODE,
             P_CPARTY_CODE,
             L_DEAL_SUBTYPE,
             P_PRODUCT_TYPE,
             P_PORTFOLIO_CODE,
             P_CURRENCY,
             P_CONTRA_CCY,
             P_CURRENCY_COMBINATION,
             P_YEAR_CALC_TYPE,
	     P_ACCOUNT_NO,
             L_BASE_REF_AMOUNT,
             L_HCE_BASE_REF_AMOUNT,
             L_CONVERT_RATE,
             P_BASE_RATE,
	     L_DAILY_INT,
	     L_HCE_INT);
Line: 860

            update XTR_POSITION_HISTORY
              set COMPANY_CODE = P_COMPANY_CODE,
                CPARTY_CODE  = P_CPARTY_CODE,
                DEAL_SUBTYPE = decode(DEAL_TYPE,
                  'CA',decode(sign(nvl(P_BASE_REF_AMOUNT,0)),-1,'FUND','INVEST'),
                  'IG',decode(sign(nvl(P_BASE_REF_AMOUNT,0)),-1, 'FUND','INVEST'),
                                                        P_DEAL_SUBTYPE),
                PRODUCT_TYPE = P_PRODUCT_TYPE,
                PORTFOLIO_CODE = P_PORTFOLIO_CODE,
                CURRENCY = P_CURRENCY,
                CURRENCY_COMBINATION = P_CURRENCY_COMBINATION,
                YEAR_CALC_TYPE = P_YEAR_CALC_TYPE,
                ACCOUNT_NO = P_ACCOUNT_NO,
                BASE_REF_AMOUNT = decode(DEAL_TYPE,'CA',abs(P_BASE_REF_AMOUNT),
                                                   'IG',abs(P_BASE_REF_AMOUNT),
                                                        P_BASE_REF_AMOUNT),
                HCE_BASE_REF_AMOUNT =decode(DEAL_TYPE,'CA',abs(L_HCE_BASE_REF_AMOUNT),
                                                      'IG',abs(L_HCE_BASE_REF_AMOUNT),
                                                           L_HCE_BASE_REF_AMOUNT),
                BASE_RATE = P_BASE_RATE,
                TRANSACTION_RATE = decode(P_DEAL_TYPE, 'FX', P_TRANSACTION_RATE, L_CONVERT_RATE),
		INTEREST = decode(DEAL_TYPE, 'CA', abs(L_DAILY_INT),
					     'IG', abs(L_DAILY_INT),
					     'FX', 0,
						L_DAILY_INT),
		HCE_INTEREST = decode(DEAL_TYPE, 'CA', abs(L_HCE_INT),
						 'IG', abs(L_HCE_INT),
					         'FX', 0,
						L_HCE_INT)
             where rowid=l_rowid;
Line: 896

           insert into XTR_POSITION_HISTORY(
             AS_AT_DATE,
             DEAL_TYPE,
             DEAL_NUMBER,
             TRANSACTION_NUMBER,
             COMPANY_CODE,
             CPARTY_CODE,
             DEAL_SUBTYPE,
             PRODUCT_TYPE,
             PORTFOLIO_CODE,
             CURRENCY,
             CONTRA_CCY,
             CURRENCY_COMBINATION,
             YEAR_CALC_TYPE,
             ACCOUNT_NO,
             BASE_REF_AMOUNT,
             HCE_BASE_REF_AMOUNT,
             TRANSACTION_RATE,
             BASE_RATE,
	     INTEREST,
	     HCE_INTEREST)
          values(
             L_AS_AT_DATE,
             P_DEAL_TYPE,
             P_DEAL_NUMBER,
             P_TRANSACTION_NUMBER,
             P_COMPANY_CODE,
             P_CPARTY_CODE,
             decode(P_DEAL_TYPE,
                  'CA',decode(sign(nvl(P_BASE_REF_AMOUNT,0)),-1,'FUND','INVEST'),
                  'IG',decode(sign(nvl(P_BASE_REF_AMOUNT,0)),-1, 'FUND','INVEST'),
                                                        P_DEAL_SUBTYPE), --bug 2345708
             P_PRODUCT_TYPE,
             P_PORTFOLIO_CODE,
             P_CURRENCY,
             P_CONTRA_CCY,
             P_CURRENCY_COMBINATION,
             P_YEAR_CALC_TYPE,
	     P_ACCOUNT_NO,
             L_BASE_REF_AMOUNT,
             L_HCE_BASE_REF_AMOUNT,
             decode(P_DEAL_TYPE, 'FX', P_TRANSACTION_RATE, L_CONVERT_RATE),
             P_BASE_RATE,
	     decode(P_DEAL_TYPE, 'FX', 0, abs(L_DAILY_INT)),
	     decode(P_DEAL_TYPE, 'FX', 0, abs(L_HCE_INT)));
Line: 1000

  select s.HCE_RATE,s.ROUNDING_FACTOR
   from XTR_MASTER_CURRENCIES_V s
   where s.CURRENCY = P_CURRENCY;
Line: 1056

    select max(AS_AT_DATE + 1)
      from XTR_POSITION_HISTORY
       where DEAL_TYPE = V_DEAL_TYPE
         and DEAL_NUMBER = V_DEAL_NUMBER
         and TRANSACTION_NUMBER = V_TRANSACTION_NUMBER;
Line: 1067

    select rowid
      from XTR_POSITION_HISTORY
       where AS_AT_DATE = V_AS_AT_DATE
         and DEAL_TYPE = V_DEAL_TYPE
         and DEAL_NUMBER = V_DEAL_NUMBER
         and TRANSACTION_NUMBER = V_TRANSACTION_NUMBER
        for update of BASE_REF_AMOUNT NOWAIT;
Line: 1080

    select max(AS_AT_DATE + 1)
    from XTR_POSITION_HISTORY
    where DEAL_TYPE = V_DEAL_TYPE
    and DEAL_NUMBER = V_DEAL_NUMBER;
Line: 1087

    select cross_ref_start_date, avg_rate_last_processed
    from xtr_bond_alloc_details
    where deal_no = V_DEAL_NUMBER
    and CROSS_REF_START_DATE <= V_AS_AT_DATE
    and avg_rate_last_processed is null
    order by cross_ref_start_date;   -- 4470022
Line: 1097

    select rowid
    from XTR_POSITION_HISTORY
    where AS_AT_DATE = V_AS_AT_DATE
      and DEAL_TYPE = V_DEAL_TYPE
      and DEAL_NUMBER = V_DEAL_NUMBER
     for update of BASE_REF_AMOUNT NOWAIT;
Line: 1110

    select max(AS_AT_DATE + 1)
      from XTR_POSITION_HISTORY
       where DEAL_TYPE = V_DEAL_TYPE
         and DEAL_NUMBER = V_DEAL_NUMBER;
Line: 1118

    select rowid
      from XTR_POSITION_HISTORY
       where AS_AT_DATE = V_AS_AT_DATE
         and DEAL_TYPE = V_DEAL_TYPE
         and DEAL_NUMBER = V_DEAL_NUMBER
        for update of BASE_REF_AMOUNT NOWAIT;
Line: 1131

    select max(AS_AT_DATE + 1)
      from XTR_POSITION_HISTORY
       where DEAL_TYPE = V_DEAl_TYPE
         and COMPANY_CODE = V_COMPANY_CODE
         and ACCOUNT_NO = V_ACCOUNT_NO;
Line: 1141

    select rowid
      from XTR_POSITION_HISTORY
       where AS_AT_DATE = V_AS_AT_DATE
         and DEAL_TYPE = V_DEAL_TYPE
         and COMPANY_CODE = V_COMPANY_CODE
         and ACCOUNT_NO = V_ACCOUNT_NO
        for update of BASE_REF_AMOUNT NOWAIT;
Line: 1154

    select MAX(AS_AT_DATE + 1)
      from XTR_POSITION_HISTORY
       where DEAL_TYPE = V_DEAL_TYPE
         and DEAL_NUMBER = V_DEAl_NUMBER;
Line: 1162

    select rowid
      from XTR_POSITION_HISTORY
       where AS_AT_DATE = V_AS_AT_DATE
         and DEAL_TYPE = V_DEAL_TYPE
         and DEAL_NUMBER = V_DEAl_NUMBER
        for update of BASE_REF_AMOUNT NOWAIT;
Line: 1171

 select b.calc_type, d.coupon_rate, d.maturity_amount, d.start_amount
 from xtr_deals D, xtr_bond_issues B
 where d.bond_issue = b.bond_issue_code
 and d.deal_no = P_DEAL_NUMBER;
Line: 1177

 Select sum(face_value), max(cross_ref_start_date)
 From XTR_BOND_ALLOC_DETAILS
 Where deal_no = P_DEAL_NUMBER
  and cross_ref_start_date <= P_AS_AT_DATE;
Line: 1185

 Select maturity_date
 from xtr_deals
 where deal_no = p_deal_number
 and deal_type = 'BOND'
 and maturity_date <= P_AS_AT_DATE;
Line: 1326

            Delete from XTR_POSITION_HISTORY
            Where deal_number = P_DEAL_NUMBER
            And as_at_date >= l_last_resale_date;
Line: 1431

          Select sum(face_value)
          into l_face_value
          From XTR_BOND_ALLOC_DETAILS
          Where deal_no = P_DEAL_NUMBER
          and cross_ref_start_date <= L_AS_AT_DATE;
Line: 1440

                    SELECT SUM(interest), SUM(original_amount)
                    INTO l_interest,l_original_amount
                     FROM xtr_rollover_transactions
                     WHERE deal_number = P_DEAL_NUMBER;
Line: 1475

      /* Insert or Update postion history table */
      /*========================================*/
       if L_ROWID is not null then
            update XTR_POSITION_HISTORY
              set COMPANY_CODE = P_COMPANY_CODE,
                CPARTY_CODE  = P_CPARTY_CODE,
          /*      DEAL_SUBTYPE = decode(DEAL_TYPE,
                  'CA',decode(sign(nvl(BASE_REF_AMOUNT,0)
                        +nvl(P_BASE_REF_AMOUNT,0)),-1,'FUND','INVEST'),
                  'IG',decode(sign(nvl(BASE_REF_AMOUNT,0)
                        +nvl(P_BASE_REF_AMOUNT,0)),-1, 'FUND','INVEST'),
                                                        P_DEAL_SUBTYPE),   */
                DEAL_SUBTYPE = decode(DEAL_TYPE,
                  'CA',decode(sign(nvl(P_BASE_REF_AMOUNT,0)),-1,'FUND','INVEST'),
                  'IG',decode(sign(nvl(P_BASE_REF_AMOUNT,0)),-1, 'FUND','INVEST'),
                                                        P_DEAL_SUBTYPE),   -- bug 2345708
                PRODUCT_TYPE = P_PRODUCT_TYPE,
                PORTFOLIO_CODE = P_PORTFOLIO_CODE,
                CURRENCY = P_CURRENCY,
                CONTRA_CCY = P_CONTRA_CCY,
                CURRENCY_COMBINATION = P_CURRENCY_COMBINATION,
                YEAR_CALC_TYPE = P_YEAR_CALC_TYPE,
                ACCOUNT_NO = P_ACCOUNT_NO,
                BASE_REF_AMOUNT = decode(DEAL_TYPE,'CA',abs(P_BASE_REF_AMOUNT),
                                                   'IG',abs(P_BASE_REF_AMOUNT),
						   'BOND', abs(nvl(L_BASE_REF_AMOUNT,P_BASE_REF_AMOUNT)),
                                                        P_BASE_REF_AMOUNT),
                HCE_BASE_REF_AMOUNT =decode(DEAL_TYPE,'CA',abs(L_HCE_BASE_REF_AMOUNT),
                                                      'IG',abs(L_HCE_BASE_REF_AMOUNT),
                                                           L_HCE_BASE_REF_AMOUNT),  -- bug2345708
                BASE_RATE = P_BASE_RATE,
                TRANSACTION_RATE = decode(P_DEAL_TYPE, 'FX', P_TRANSACTION_RATE, L_CONVERT_RATE),
                INTEREST = decode(DEAL_TYPE, 'CA', abs(L_DAILY_INT),
                                             'IG', abs(L_DAILY_INT),
					     'FX', 0,
                                                L_DAILY_INT),
                HCE_INTEREST = decode(DEAL_TYPE, 'CA', abs(L_HCE_INT),
                                                 'IG', abs(L_HCE_INT),
                                                 'FX', 0,
                                                L_HCE_INT)
             where rowid=l_rowid;
Line: 1518

           insert into XTR_POSITION_HISTORY(
             AS_AT_DATE,
             DEAL_TYPE,
             DEAL_NUMBER,
             TRANSACTION_NUMBER,
             COMPANY_CODE,
             CPARTY_CODE,
             DEAL_SUBTYPE,
             PRODUCT_TYPE,
             PORTFOLIO_CODE,
             CURRENCY,
             CONTRA_CCY,
             CURRENCY_COMBINATION,
             YEAR_CALC_TYPE,
             ACCOUNT_NO,
             BASE_REF_AMOUNT,
             HCE_BASE_REF_AMOUNT,
             TRANSACTION_RATE,
             BASE_RATE,
	     INTEREST,
	     HCE_INTEREST)
         values(
             L_AS_AT_DATE,
             P_DEAL_TYPE,
             P_DEAL_NUMBER,
             P_TRANSACTION_NUMBER,
             P_COMPANY_CODE,
             P_CPARTY_CODE,
             P_DEAL_SUBTYPE,
             P_PRODUCT_TYPE,
             P_PORTFOLIO_CODE,
             P_CURRENCY,
             P_CONTRA_CCY,
             P_CURRENCY_COMBINATION,
             P_YEAR_CALC_TYPE,
	     P_ACCOUNT_NO,
             abs(nvl(L_BASE_REF_AMOUNT, P_BASE_REF_AMOUNT)),
             abs(L_HCE_BASE_REF_AMOUNT),
             decode(P_DEAL_TYPE, 'FX', P_TRANSACTION_RATE, L_CONVERT_RATE),
             P_BASE_RATE,
	     decode(P_DEAL_TYPE, 'FX', 0, abs(L_DAILY_INT)),
	     decode(P_DEAL_TYPE, 'FX', 0, abs(L_HCE_INT)));
Line: 1563

	     Update XTR_BOND_ALLOC_DETAILS
	     set avg_rate_last_processed = greatest(nvl(avg_rate_last_processed, L_AS_AT_DATE),
					   L_AS_AT_DATE)
	     where deal_no = P_DEAL_NUMBER;
Line: 1644

    select ROWID,GROSS_PRINCIPAL
      from XTR_COST_OF_FUNDS
       where AS_AT_DATE = V_AS_AT_DATE
         and DEAL_TYPE = V_DEAL_TYPE
	 and DEAL_SUBTYPE = V_DEAL_SUBTYPE
         and COMPANY_CODE = V_COMPANY_CODE
         and CURRENCY = V_CURRENCY
         and nvl(CURRENCY_COMBINATION,'%')=nvl(V_CURRENCY_COMBINATION,'%')
         and nvl(PRODUCT_TYPE,'%') = nvl(V_PRODUCT_TYPE,'%')
         and nvl(PORTFOLIO_CODE,'%') = nvl(V_PORTFOLIO_CODE,'%')
         and nvl(PARTY_CODE,'%') = nvl(V_CPARTY_CODE,'%')
        for update of GROSS_PRINCIPAL NOWAIT;
Line: 1666

 select hce_rate,rounding_factor
 from XTR_MASTER_CURRENCIES_V
  where currency=l_currency;
Line: 1672

/* INSERT     */
/**************/
 if P_ACTION='INSERT' then
  if (NEW_DEAL_TYPE<>'IG') then /* IG handled by maintain_position_history, see comments for maintain_cof_ig */
   l_currency :=NEW_CURRENCY;
Line: 1709

             update XTR_COST_OF_FUNDS
             set GROSS_PRINCIPAL = nvl(GROSS_PRINCIPAL,0)+nvl(NEW_BASE_REF_AMOUNT,0),
                HCE_GROSS_PRINCIPAL =nvl(HCE_GROSS_PRINCIPAL,0)+nvl(NEW_HCE_BASE_REF_AMOUNT,0),
                WEIGHTED_AVG_PRINCIPAL = nvl(WEIGHTED_AVG_PRINCIPAL,0)
                                        +round(nvl(NEW_BASE_REF_AMOUNT,0)*
                                         nvl(NEW_TRANSACTION_RATE,0)/v_100,l_fac),
		GROSS_BASE_AMOUNT = nvl(GROSS_BASE_AMOUNT,0)+abs(nvl(NEW_BASE_REF_AMOUNT,0)),
	        GROSS_CONTRA_TRANS_AMOUNT = nvl(GROSS_CONTRA_TRANS_AMOUNT,0)+
					    abs(nvl(NEW_BASE_REF_AMOUNT,0))*nvl(NEW_TRANSACTION_RATE,0),
                GROSS_CONTRA_SPOT_AMOUNT = nvl(GROSS_CONTRA_SPOT_AMOUNT,0)+
                                            abs(nvl(NEW_BASE_REF_AMOUNT,0))*nvl(NEW_BASE_RATE,0),
                AVG_INTEREST_RATE = decode(nvl(GROSS_BASE_AMOUNT,0)+abs(nvl(NEW_BASE_REF_AMOUNT,0)),0,NULL,
				    round((nvl(GROSS_CONTRA_TRANS_AMOUNT,0)+
                                     abs(nvl(NEW_BASE_REF_AMOUNT,0))*nvl(NEW_TRANSACTION_RATE,0))/
				    (nvl(GROSS_BASE_AMOUNT,0)+abs(nvl(NEW_BASE_REF_AMOUNT,0))),l_fac)),
                AVG_BASE_RATE = decode(nvl(GROSS_BASE_AMOUNT,0)+abs(nvl(NEW_BASE_REF_AMOUNT,0)),0,NULL,
                                    round((nvl(GROSS_CONTRA_SPOT_AMOUNT,0)+
                                     abs(nvl(NEW_BASE_REF_AMOUNT,0))*nvl(NEW_BASE_RATE,0))/
                                    (nvl(GROSS_BASE_AMOUNT,0)+abs(nvl(NEW_BASE_REF_AMOUNT,0))),l_fac)),
                BASE_WEIGHTED_AVG_PRINCIPAL = nvl(BASE_WEIGHTED_AVG_PRINCIPAL,0)
                                        +round(nvl(NEW_BASE_REF_AMOUNT,0)*nvl(NEW_BASE_RATE,0)/v_100,l_fac),
                INTEREST = 0,
	        HCE_INTEREST = 0
                where rowid=l_rowid;
Line: 1734

                update XTR_COST_OF_FUNDS
                set GROSS_PRINCIPAL = nvl(GROSS_PRINCIPAL,0)+nvl(NEW_BASE_REF_AMOUNT,0),
                HCE_GROSS_PRINCIPAL =nvl(HCE_GROSS_PRINCIPAL,0)+nvl(NEW_HCE_BASE_REF_AMOUNT,0),
                WEIGHTED_AVG_PRINCIPAL = nvl(WEIGHTED_AVG_PRINCIPAL,0)
                                        +round(nvl(NEW_BASE_REF_AMOUNT,0)*
                                         nvl(NEW_TRANSACTION_RATE,0)/v_100,l_fac),
                AVG_INTEREST_RATE = decode((nvl(GROSS_PRINCIPAL,0) - nvl(NEW_BASE_REF_AMOUNT,0)),0,null,
                 	            abs((nvl(INTEREST,0) - nvl(NEW_INTEREST,0))/
                                    (nvl(GROSS_PRINCIPAL,0) - nvl(NEW_BASE_REF_AMOUNT,0)))) * 36500,
					-- bug 2345708
                BASE_WEIGHTED_AVG_PRINCIPAL = nvl(BASE_WEIGHTED_AVG_PRINCIPAL,0)
                                        +round(nvl(NEW_BASE_REF_AMOUNT,0)*nvl(NEW_BASE_RATE,0)/v_100,l_fac),
                AVG_BASE_RATE = abs(decode(nvl(GROSS_PRINCIPAL,0)+nvl(NEW_BASE_REF_AMOUNT,0),0,null,
                                    decode(nvl(WEIGHTED_AVG_PRINCIPAL,0)
                                    +round(nvl(NEW_BASE_REF_AMOUNT,0)*
                                     nvl(NEW_TRANSACTION_RATE,0)/v_100,l_fac),
                                     0,null,
                                     round(v_100*(nvl(BASE_WEIGHTED_AVG_PRINCIPAL,0)
                                     +round(nvl(NEW_BASE_REF_AMOUNT,0)*nvl(NEW_BASE_RATE,0)/v_100,l_fac))/
                                     (nvl(GROSS_PRINCIPAL,0)+nvl(NEW_BASE_REF_AMOUNT,0)),l_fac)))),
                INTEREST = nvl(INTEREST,0) + nvl(NEW_INTEREST,0),
                HCE_INTEREST = nvl(HCE_INTEREST,0) + nvl(NEW_HCE_INTEREST,0)
                where rowid=l_rowid;
Line: 1761

          insert into XTR_COST_OF_FUNDS
           (as_at_date,company_code,deal_type,
            deal_subtype,party_code,portfolio_code,product_type,
            currency,currency_combination,contra_ccy,
            account_no,created_on,
            gross_principal,hce_gross_principal,
            weighted_avg_principal,avg_interest_rate,interest,hce_interest,
            base_weighted_avg_principal,avg_base_rate,gross_base_amount,
	    gross_contra_trans_amount, gross_contra_spot_amount)
          values(
             NEW_AS_AT_DATE,
             NEW_COMPANY_CODE,
             NEW_DEAL_TYPE,
             NEW_DEAL_SUBTYPE,
             NEW_CPARTY_CODE,
             NEW_PORTFOLIO_CODE,
             NEW_PRODUCT_TYPE,
             NEW_CURRENCY,
             NEW_CURRENCY_COMBINATION,
             NEW_CONTRA_CCY,
             NEW_ACCOUNT_NO,
             sysdate,   -- created_on
             NEW_BASE_REF_AMOUNT,  -- gross_principal
             NEW_HCE_BASE_REF_AMOUNT,  -- hce_gross_principal
             round(nvl(NEW_BASE_REF_AMOUNT,0)*nvl(NEW_TRANSACTION_RATE,0)/v_100,l_fac), -- weightedavgprin
             NEW_TRANSACTION_RATE,    -- avg_interest_rate
             decode(NEW_DEAL_TYPE, 'FX', 0, NEW_INTEREST),         -- interest
	     decode(NEW_DEAL_TYPE, 'FX', 0, NEW_HCE_INTEREST),     -- hce_interest
             round(nvl(NEW_BASE_REF_AMOUNT,0)*nvl(NEW_BASE_RATE,0)/v_100,l_fac),  -- base_w_avg_prin
             NEW_BASE_RATE, -- avg_base_rate
	     decode(NEW_DEAL_TYPE, 'FX', abs(NEW_BASE_REF_AMOUNT), NULL),  -- gross_base_amount
	     decode(NEW_DEAL_TYPE, 'FX', round(abs(nvl(NEW_BASE_REF_AMOUNT,0)
					 *nvl(NEW_TRANSACTION_RATE,0)),l_fac), NULL), --gross_contra_trans
             decode(NEW_DEAL_TYPE, 'FX', round(abs(nvl(NEW_BASE_REF_AMOUNT,0)
                                         *nvl(NEW_BASE_RATE,0)),l_fac), NULL) --gross_contra_spot
             );
Line: 1800

/* DELETE     */
/**************/
 elsif P_ACTION = 'DELETE' then
   l_currency :=OLD_CURRENCY;
Line: 1832

             delete from XTR_COST_OF_FUNDS
              where  rowid=l_rowid;
Line: 1836

                update XTR_COST_OF_FUNDS
                set GROSS_PRINCIPAL = nvl(GROSS_PRINCIPAL,0)-nvl(OLD_BASE_REF_AMOUNT,0),
                HCE_GROSS_PRINCIPAL =nvl(HCE_GROSS_PRINCIPAL,0)-nvl(OLD_HCE_BASE_REF_AMOUNT,0),
                WEIGHTED_AVG_PRINCIPAL = nvl(WEIGHTED_AVG_PRINCIPAL,0)
                                        -round(nvl(OLD_BASE_REF_AMOUNT,0)*
                                         nvl(OLD_TRANSACTION_RATE,0)/v_100,l_fac),
                GROSS_BASE_AMOUNT = nvl(GROSS_BASE_AMOUNT,0)-abs(nvl(OLD_BASE_REF_AMOUNT,0)),
                GROSS_CONTRA_TRANS_AMOUNT = nvl(GROSS_CONTRA_TRANS_AMOUNT,0)-
                                            abs(nvl(OLD_BASE_REF_AMOUNT,0))*nvl(OLD_TRANSACTION_RATE,0),
                GROSS_CONTRA_SPOT_AMOUNT = nvl(GROSS_CONTRA_SPOT_AMOUNT,0)-
                                            abs(nvl(OLD_BASE_REF_AMOUNT,0))*nvl(OLD_BASE_RATE,0),
                AVG_INTEREST_RATE = decode(nvl(GROSS_BASE_AMOUNT,0)-abs(nvl(OLD_BASE_REF_AMOUNT,0)),0,NULL,
                                    round((nvl(GROSS_CONTRA_TRANS_AMOUNT,0)-
                                     abs(nvl(OLD_BASE_REF_AMOUNT,0))*nvl(OLD_TRANSACTION_RATE,0))/
                                    (nvl(GROSS_BASE_AMOUNT,0)-abs(nvl(OLD_BASE_REF_AMOUNT,0))),l_fac)),
                AVG_BASE_RATE = decode(nvl(GROSS_BASE_AMOUNT,0)-abs(nvl(OLD_BASE_REF_AMOUNT,0)),0,NULL,
                                    round((nvl(GROSS_CONTRA_SPOT_AMOUNT,0)-
                                     abs(nvl(OLD_BASE_REF_AMOUNT,0))*nvl(OLD_BASE_RATE,0))/
                                    (nvl(GROSS_BASE_AMOUNT,0)-abs(nvl(OLD_BASE_REF_AMOUNT,0))),l_fac)),
                BASE_WEIGHTED_AVG_PRINCIPAL = nvl(BASE_WEIGHTED_AVG_PRINCIPAL,0)
                                        -round(nvl(OLD_BASE_REF_AMOUNT,0)*nvl(OLD_BASE_RATE,0)/v_100,l_fac),
                INTEREST = 0,
                HCE_INTEREST = 0
                where rowid=l_rowid;
Line: 1861

                update XTR_COST_OF_FUNDS
                set GROSS_PRINCIPAL = nvl(GROSS_PRINCIPAL,0)-nvl(OLD_BASE_REF_AMOUNT,0),
                HCE_GROSS_PRINCIPAL =nvl(HCE_GROSS_PRINCIPAL,0)-nvl(OLD_HCE_BASE_REF_AMOUNT,0),
                WEIGHTED_AVG_PRINCIPAL = nvl(WEIGHTED_AVG_PRINCIPAL,0)
                                        -round(nvl(OLD_BASE_REF_AMOUNT,0)*
                                         nvl(OLD_TRANSACTION_RATE,0)/v_100,l_fac),
                AVG_INTEREST_RATE = decode((nvl(INTEREST,0) - nvl(NEW_INTEREST,0)), 0, null,
			            abs((nvl(INTEREST,0) - nvl(NEW_INTEREST,0))/
				    (nvl(GROSS_PRINCIPAL,0) - nvl(NEW_BASE_REF_AMOUNT,0)))),
                BASE_WEIGHTED_AVG_PRINCIPAL = nvl(BASE_WEIGHTED_AVG_PRINCIPAL,0)
                                        -round(nvl(OLD_BASE_REF_AMOUNT,0)*nvl(OLD_BASE_RATE,0)/v_100,l_fac),
                AVG_BASE_RATE = abs(decode(nvl(GROSS_PRINCIPAL,0)-nvl(OLD_BASE_REF_AMOUNT,0),0,null,
                                    decode(nvl(WEIGHTED_AVG_PRINCIPAL,0)
                                     -round(nvl(OLD_BASE_REF_AMOUNT,0)*
                                      nvl(OLD_TRANSACTION_RATE,0)/v_100,l_fac),0,null,
                                     round(v_100*(nvl(BASE_WEIGHTED_AVG_PRINCIPAL,0)
                                     -round(nvl(OLD_BASE_REF_AMOUNT,0)*
                                       nvl(OLD_BASE_RATE,0)/v_100,l_fac))/
                                      (nvl(GROSS_PRINCIPAL,0)-nvl(OLD_BASE_REF_AMOUNT,0)),l_fac)))),
                INTEREST = nvl(INTEREST,0) - nvl(OLD_INTEREST,0),
		HCE_INTEREST = nvl(HCE_INTEREST,0) - nvl(OLD_HCE_INTEREST,0)
                where rowid=l_rowid;
Line: 1888

          insert into XTR_COST_OF_FUNDS
           (as_at_date,company_code,deal_type,
            deal_subtype,party_code,portfolio_code,product_type,
            currency,currency_combination,contra_ccy,
            account_no,created_on,
            gross_principal,hce_gross_principal,
            weighted_avg_principal,avg_interest_rate,interest,hce_interest,
            base_weighted_avg_principal,avg_base_rate,gross_base_amount,
	    gross_contra_trans_amount, gross_contra_spot_amount)
          values(
             OLD_AS_AT_DATE,
             OLD_COMPANY_CODE,
             OLD_DEAL_TYPE,
             OLD_DEAL_SUBTYPE,
             OLD_CPARTY_CODE,
             OLD_PORTFOLIO_CODE,
             OLD_PRODUCT_TYPE,
             OLD_CURRENCY,
             OLD_CURRENCY_COMBINATION,
             OLD_CONTRA_CCY,
             OLD_ACCOUNT_NO,
             sysdate,
             OLD_BASE_REF_AMOUNT,
             OLD_HCE_BASE_REF_AMOUNT,
             0-round(nvl(OLD_BASE_REF_AMOUNT,0)*nvl(OLD_TRANSACTION_RATE,0)/v_100,l_fac),
             OLD_TRANSACTION_RATE,
	     decode(OLD_DEAL_TYPE, 'FX', 0, OLD_INTEREST),
	     decode(OLD_DEAL_TYPE, 'FX', 0, OLD_HCE_INTEREST),
             0-round(nvl(OLD_BASE_REF_AMOUNT,0)*nvl(OLD_BASE_RATE,0)/v_100,l_fac),
             OLD_BASE_RATE,
             decode(OLD_DEAL_TYPE, 'FX', abs(OLD_BASE_REF_AMOUNT), NULL),  -- gross_base_amount
             decode(OLD_DEAL_TYPE, 'FX', round(abs(nvl(OLD_BASE_REF_AMOUNT,0)
                                         *nvl(OLD_TRANSACTION_RATE,0)),l_fac), NULL), --gross_contra_trans
             decode(OLD_DEAL_TYPE, 'FX', round(abs(nvl(OLD_BASE_REF_AMOUNT,0)
                                         *nvl(OLD_BASE_RATE,0)),l_fac), NULL) --gross_contra_spot
	     );
Line: 1927

/* UPDATE     */
/**************/
 elsif  P_ACTION='UPDATE' then
  if (NEW_DEAL_TYPE<>'IG') then /* IG handled by maintain_position_history, see comments for maintain_cof_ig */

   l_currency :=NEW_CURRENCY;
Line: 1964

             update XTR_COST_OF_FUNDS
             set GROSS_PRINCIPAL = nvl(GROSS_PRINCIPAL,0)+nvl(NEW_BASE_REF_AMOUNT,0),
                HCE_GROSS_PRINCIPAL =nvl(HCE_GROSS_PRINCIPAL,0)+nvl(NEW_HCE_BASE_REF_AMOUNT,0),
                WEIGHTED_AVG_PRINCIPAL = nvl(WEIGHTED_AVG_PRINCIPAL,0)
                                        +round(nvl(NEW_BASE_REF_AMOUNT,0)*
                                         nvl(NEW_TRANSACTION_RATE,0)/v_100,l_fac),
                GROSS_BASE_AMOUNT = nvl(GROSS_BASE_AMOUNT,0)+abs(nvl(NEW_BASE_REF_AMOUNT,0)),
                GROSS_CONTRA_TRANS_AMOUNT = nvl(GROSS_CONTRA_TRANS_AMOUNT,0)+
                                            abs(nvl(NEW_BASE_REF_AMOUNT,0))*nvl(NEW_TRANSACTION_RATE,0),
                GROSS_CONTRA_SPOT_AMOUNT = nvl(GROSS_CONTRA_SPOT_AMOUNT,0)+
                                            abs(nvl(NEW_BASE_REF_AMOUNT,0))*nvl(NEW_BASE_RATE,0),
                AVG_INTEREST_RATE = decode(nvl(GROSS_BASE_AMOUNT,0)+abs(nvl(NEW_BASE_REF_AMOUNT,0)),0,NULL,
                                    round((nvl(GROSS_CONTRA_TRANS_AMOUNT,0)+
                                     abs(nvl(NEW_BASE_REF_AMOUNT,0))*nvl(NEW_TRANSACTION_RATE,0))/
                                    (nvl(GROSS_BASE_AMOUNT,0)+abs(nvl(NEW_BASE_REF_AMOUNT,0))),l_fac)),
                AVG_BASE_RATE = decode(nvl(GROSS_BASE_AMOUNT,0)+abs(nvl(NEW_BASE_REF_AMOUNT,0)),0,NULL,
                                    round((nvl(GROSS_CONTRA_SPOT_AMOUNT,0)+
                                     abs(nvl(NEW_BASE_REF_AMOUNT,0))*nvl(NEW_BASE_RATE,0))/
                                    (nvl(GROSS_BASE_AMOUNT,0)+abs(nvl(NEW_BASE_REF_AMOUNT,0))),l_fac)),
                BASE_WEIGHTED_AVG_PRINCIPAL = nvl(BASE_WEIGHTED_AVG_PRINCIPAL,0)
                                        +round(nvl(NEW_BASE_REF_AMOUNT,0)*nvl(NEW_BASE_RATE,0)/v_100,l_fac),
                INTEREST = 0,
                HCE_INTEREST = 0
                where rowid=l_rowid;
Line: 1989

             update XTR_COST_OF_FUNDS
             set GROSS_PRINCIPAL = nvl(GROSS_PRINCIPAL,0)+nvl(NEW_BASE_REF_AMOUNT,0),
                HCE_GROSS_PRINCIPAL =nvl(HCE_GROSS_PRINCIPAL,0)+nvl(NEW_HCE_BASE_REF_AMOUNT,0),
                WEIGHTED_AVG_PRINCIPAL = nvl(WEIGHTED_AVG_PRINCIPAL,0)
                                        +round(nvl(NEW_BASE_REF_AMOUNT,0)*
                                         nvl(NEW_TRANSACTION_RATE,0)/v_100,l_fac),
       	        AVG_INTEREST_RATE = decode((nvl(GROSS_PRINCIPAL,0)-nvl(OLD_BASE_REF_AMOUNT,0)
				    +nvl(NEW_BASE_REF_AMOUNT,0)), 0,null,
				   abs((nvl(INTEREST,0)-nvl(OLD_INTEREST,0)+nvl(NEW_INTEREST,0))/
			           (nvl(GROSS_PRINCIPAL,0)-nvl(OLD_BASE_REF_AMOUNT,0)+nvl(NEW_BASE_REF_AMOUNT,0))
					)) * 36500, -- bug 2345708
                BASE_WEIGHTED_AVG_PRINCIPAL = nvl(BASE_WEIGHTED_AVG_PRINCIPAL,0)
                                        +round(nvl(NEW_BASE_REF_AMOUNT,0)*nvl(NEW_BASE_RATE,0)/v_100,l_fac),
                AVG_BASE_RATE = abs(decode(nvl(GROSS_PRINCIPAL,0)+nvl(NEW_BASE_REF_AMOUNT,0),0,null,
                                    decode(nvl(WEIGHTED_AVG_PRINCIPAL,0)
                                      +round(nvl(NEW_BASE_REF_AMOUNT,0)*
                                       nvl(NEW_TRANSACTION_RATE,0)/v_100,l_fac),0,null,
                                       round(v_100*(nvl(BASE_WEIGHTED_AVG_PRINCIPAL,0)
                                       +round(nvl(NEW_BASE_REF_AMOUNT,0)*nvl(NEW_BASE_RATE,0)/v_100,l_fac))/
                                       (nvl(GROSS_PRINCIPAL,0)+nvl(NEW_BASE_REF_AMOUNT,0)),l_fac)))),
	        INTEREST = nvl(INTEREST,0) + nvl(NEW_INTEREST,0),
	        HCE_INTEREST = nvl(HCE_INTEREST,0) + nvl(NEW_HCE_INTEREST,0)
                where rowid=l_rowid;
Line: 2016

          insert into XTR_COST_OF_FUNDS
           (as_at_date,company_code,deal_type,
            deal_subtype,party_code,portfolio_code,product_type,
            currency,currency_combination,contra_ccy,
            account_no,created_on,
            gross_principal,hce_gross_principal,
            weighted_avg_principal,avg_interest_rate,interest,hce_interest,
            base_weighted_avg_principal,avg_base_rate, gross_base_amount,
	    gross_contra_trans_amount, gross_contra_spot_amount)
          values(
             NEW_AS_AT_DATE,
             NEW_COMPANY_CODE,
             NEW_DEAL_TYPE,
             NEW_DEAL_SUBTYPE,
             NEW_CPARTY_CODE,
             NEW_PORTFOLIO_CODE,
             NEW_PRODUCT_TYPE,
             NEW_CURRENCY,
             NEW_CURRENCY_COMBINATION,
             NEW_CONTRA_CCY,
             NEW_ACCOUNT_NO,
             sysdate,
             NEW_BASE_REF_AMOUNT,
             NEW_HCE_BASE_REF_AMOUNT,
             round(nvl(NEW_BASE_REF_AMOUNT,0)*nvl(NEW_TRANSACTION_RATE,0)/v_100,l_fac),
             NEW_TRANSACTION_RATE,
             decode(NEW_DEAL_TYPE, 'FX', 0, NEW_INTEREST),         -- interest
             decode(NEW_DEAL_TYPE, 'FX', 0, NEW_HCE_INTEREST),     -- hce_interest
             round(nvl(NEW_BASE_REF_AMOUNT,0)*nvl(NEW_BASE_RATE,0)/v_100,l_fac),
             NEW_BASE_RATE,
             decode(NEW_DEAL_TYPE, 'FX', abs(NEW_BASE_REF_AMOUNT), NULL),  -- gross_base_amount
             decode(NEW_DEAL_TYPE, 'FX', round(abs(nvl(NEW_BASE_REF_AMOUNT,0)
                                         *nvl(NEW_TRANSACTION_RATE,0)),l_fac), NULL), --gross_contra_trans
             decode(NEW_DEAL_TYPE, 'FX', round(abs(nvl(NEW_BASE_REF_AMOUNT,0)
                                         *nvl(NEW_BASE_RATE,0)),l_fac), NULL) --gross_contra_spot
             );
Line: 2084

             delete from XTR_COST_OF_FUNDS
              where  rowid=l_rowid;
Line: 2089

                update XTR_COST_OF_FUNDS
                set GROSS_PRINCIPAL = nvl(GROSS_PRINCIPAL,0)-nvl(OLD_BASE_REF_AMOUNT,0),
                HCE_GROSS_PRINCIPAL =nvl(HCE_GROSS_PRINCIPAL,0)-nvl(OLD_HCE_BASE_REF_AMOUNT,0),
                WEIGHTED_AVG_PRINCIPAL = nvl(WEIGHTED_AVG_PRINCIPAL,0)
                                       -round(nvl(OLD_BASE_REF_AMOUNT,0)*
                                        nvl(OLD_TRANSACTION_RATE,0)/v_100,l_fac),
                GROSS_BASE_AMOUNT = nvl(GROSS_BASE_AMOUNT,0)-abs(nvl(OLD_BASE_REF_AMOUNT,0)),
                GROSS_CONTRA_TRANS_AMOUNT = nvl(GROSS_CONTRA_TRANS_AMOUNT,0)-
                                            abs(nvl(OLD_BASE_REF_AMOUNT,0))*nvl(OLD_TRANSACTION_RATE,0),
                GROSS_CONTRA_SPOT_AMOUNT = nvl(GROSS_CONTRA_SPOT_AMOUNT,0)-
                                            abs(nvl(OLD_BASE_REF_AMOUNT,0))*nvl(OLD_BASE_RATE,0),
                AVG_INTEREST_RATE = decode(nvl(GROSS_BASE_AMOUNT,0)-abs(nvl(OLD_BASE_REF_AMOUNT,0)),0,NULL,
                                    round((nvl(GROSS_CONTRA_TRANS_AMOUNT,0)-
                                     abs(nvl(OLD_BASE_REF_AMOUNT,0))*nvl(OLD_TRANSACTION_RATE,0))/
                                    (nvl(GROSS_BASE_AMOUNT,0)-abs(nvl(OLD_BASE_REF_AMOUNT,0))),l_fac)),
                AVG_BASE_RATE = decode(nvl(GROSS_BASE_AMOUNT,0)-abs(nvl(OLD_BASE_REF_AMOUNT,0)),0,NULL,
                                    round((nvl(GROSS_CONTRA_SPOT_AMOUNT,0)-
                                     abs(nvl(OLD_BASE_REF_AMOUNT,0))*nvl(OLD_BASE_RATE,0))/
                                    (nvl(GROSS_BASE_AMOUNT,0)-abs(nvl(OLD_BASE_REF_AMOUNT,0))),l_fac)),
                BASE_WEIGHTED_AVG_PRINCIPAL = nvl(BASE_WEIGHTED_AVG_PRINCIPAL,0)
                                        -round(nvl(OLD_BASE_REF_AMOUNT,0)*nvl(OLD_BASE_RATE,0)/v_100,l_fac),
                INTEREST = 0,
                HCE_INTEREST = 0
                where rowid=l_rowid;
Line: 2114

                update XTR_COST_OF_FUNDS
                set GROSS_PRINCIPAL = nvl(GROSS_PRINCIPAL,0)-nvl(OLD_BASE_REF_AMOUNT,0),
                HCE_GROSS_PRINCIPAL =nvl(HCE_GROSS_PRINCIPAL,0)-nvl(OLD_HCE_BASE_REF_AMOUNT,0),
                WEIGHTED_AVG_PRINCIPAL = nvl(WEIGHTED_AVG_PRINCIPAL,0)
                                       -round(nvl(OLD_BASE_REF_AMOUNT,0)*
                                        nvl(OLD_TRANSACTION_RATE,0)/v_100,l_fac),
                AVG_INTEREST_RATE =decode((nvl(GROSS_PRINCIPAL,0)-nvl(OLD_BASE_REF_AMOUNT,0)),0,null,
				   abs((nvl(INTEREST,0)-nvl(OLD_INTEREST,0))/
				       (nvl(GROSS_PRINCIPAL,0)-nvl(OLD_BASE_REF_AMOUNT,0)))) * 36500
,  -- bug 2345708
                BASE_WEIGHTED_AVG_PRINCIPAL = nvl(BASE_WEIGHTED_AVG_PRINCIPAL,0)
                                        -round(nvl(OLD_BASE_REF_AMOUNT,0)*nvl(OLD_BASE_RATE,0)/v_100,l_fac),
                AVG_BASE_RATE = abs(decode(nvl(GROSS_PRINCIPAL,0)-nvl(OLD_BASE_REF_AMOUNT,0),0,null,
                                    decode(nvl(WEIGHTED_AVG_PRINCIPAL,0)
                                     -round(nvl(OLD_BASE_REF_AMOUNT,0)*
                                     nvl(OLD_TRANSACTION_RATE,0)/v_100,l_fac),0,null,
                                     round(v_100*(nvl(BASE_WEIGHTED_AVG_PRINCIPAL,0)
                                     -round(nvl(OLD_BASE_REF_AMOUNT,0)*nvl(OLD_BASE_RATE,0)/v_100,l_fac))/
                                     (nvl(GROSS_PRINCIPAL,0)-nvl(OLD_BASE_REF_AMOUNT,0)),l_fac)))),
                INTEREST = nvl(INTEREST,0) - nvl(OLD_INTEREST,0),
                HCE_INTEREST = nvl(HCE_INTEREST,0) - nvl(OLD_HCE_INTEREST,0)
                where rowid=l_rowid;
Line: 2141

          insert into XTR_COST_OF_FUNDS
           (as_at_date,company_code,deal_type,
            deal_subtype,party_code,portfolio_code,product_type,
            currency,currency_combination,contra_ccy,
            account_no,created_on,
            gross_principal,hce_gross_principal,
            weighted_avg_principal,avg_interest_rate,interest,hce_interest,
            base_weighted_avg_principal,avg_base_rate, gross_base_amount,
	    gross_contra_trans_amount, gross_contra_spot_amount)
          values(
             OLD_AS_AT_DATE,
             OLD_COMPANY_CODE,
             OLD_DEAL_TYPE,
             OLD_DEAL_SUBTYPE,
             OLD_CPARTY_CODE,
             OLD_PORTFOLIO_CODE,
             OLD_PRODUCT_TYPE,
             OLD_CURRENCY,
             OLD_CURRENCY_COMBINATION,
             OLD_CONTRA_CCY,
             OLD_ACCOUNT_NO,
             sysdate,
             OLD_BASE_REF_AMOUNT,
             OLD_HCE_BASE_REF_AMOUNT,
             0-round(nvl(OLD_BASE_REF_AMOUNT,0)*nvl(OLD_TRANSACTION_RATE,0)/v_100,l_fac),
             OLD_TRANSACTION_RATE,
	     decode(OLD_DEAL_TYPE, 'FX', 0, 0-OLD_INTEREST),  -- interest
	     decode(OLD_DEAL_TYPE, 'FX', 0, 0-OLD_HCE_INTEREST), --hce_interest
             0-round(nvl(OLD_BASE_REF_AMOUNT,0)*nvl(OLD_BASE_RATE,0)/v_100,l_fac),
             OLD_BASE_RATE,
             decode(OLD_DEAL_TYPE, 'FX', abs(OLD_BASE_REF_AMOUNT), NULL),  -- gross_base_amount
             decode(OLD_DEAL_TYPE, 'FX', round(abs(nvl(OLD_BASE_REF_AMOUNT,0)
                                         *nvl(OLD_TRANSACTION_RATE,0)),l_fac), NULL), --gross_contra_trans
             decode(OLD_DEAL_TYPE, 'FX', round(abs(nvl(OLD_BASE_REF_AMOUNT,0)
                                         *nvl(OLD_BASE_RATE,0)),l_fac), NULL) --gross_contra_spot
             );
Line: 2230

 select a.deal_no deal_number,
        1 transaction_number,
        a.status_code status_code,
        a.company_code company_code,
        a.cparty_code cparty_code,
        a.deal_type deal_type,
        a.deal_subtype deal_subtype,
        a.currency currency,
        a.currency_buy currency_buy,
        a.currency_sell currency_sell,
        a.product_type,
        a.portfolio_code,
        'ACTUAL/ACTUAL'  year_calc_type,
        a.year_basis,
        a.interest_rate interest_rate,
        a.transaction_rate,
        a.base_rate base_rate,
        a.calc_basis,
        a.start_date,
        a.value_date,
        a.option_commencement,
        a.expiry_date,
        a.maturity_date,
        a.maturity_account_no account_no,
        a.buy_amount base_amount,
        a.sell_amount second_amount,
	a.maturity_amount,
        a.start_amount,
   -- Added for Interest Override feature
   -- But FX is always populate null value to day_count_type
        a.day_count_type
 from XTR_DEALS a
 where a.deal_type ='FX'
 and a.status_code <> 'CANCELLED'
 and a.deal_date <= l_date
 and nvl(a.start_date,l_date+1) > l_date
 and value_date >l_date
Union all
/*********/
/* BOND  */
/*********/
 select a.deal_no deal_number,
        1 transaction_number,
        a.status_code status_code,
        a.company_code,
        a.cparty_code,
        a.deal_type,
        a.deal_subtype,
        a.currency,
        a.currency_buy,
        a.currency_sell,
        a.product_type,
        a.portfolio_code,
        a.year_calc_type,
        a.year_basis,
	a.interest_rate interest_rate,
        a.transaction_rate,
        a.base_rate base_rate,
        a.calc_basis,
        a.start_date,
        a.value_date,
        a.option_commencement,
        a.expiry_date,
        a.maturity_date,
        a.maturity_account_no account_no,
        a.start_amount base_amount,
        a.settle_amount second_amount,
	a.maturity_amount,
        a.start_amount,
        -- Added for Interest Override feature
        a.day_count_type
 from XTR_DEALS a
 where a.deal_type ='BOND'
 and a.deal_subtype in ('BUY', 'ISSUE')
 and a.status_code ='CURRENT'
 and a.start_date <=l_date
 and a.maturity_date > l_date
Union All
/****************/
/* Bond resale  */
/****************/
 select a.deal_no deal_number,
        1 transaction_number,
        a.status_code status_code,
        a.company_code,
        a.cparty_code,
        a.deal_type,
        a.deal_subtype,
        a.currency,
        a.currency_buy,
        a.currency_sell,
        a.product_type,
        a.portfolio_code,
        a.year_calc_type,
        a.year_basis,
        a.interest_rate interest_rate,
        a.transaction_rate,
        a.base_rate base_rate,
        a.calc_basis,
        a.start_date,
        a.value_date,
        a.option_commencement,
        a.expiry_date,
        a.maturity_date,
        a.maturity_account_no account_no,
        a.start_amount base_amount,
        a.settle_amount second_amount,
        a.maturity_amount,
        a.start_amount,
        -- Added for the Interest Override feature
        a.day_count_type
 from XTR_DEALS a
 where a.deal_type ='BOND'
 and a.deal_subtype in ('BUY', 'ISSUE')    -- Bond Repurchase Project - 2879858.
 and a.status_code ='CURRENT'
 and a.deal_no in (select distinct d.deal_no
		   from XTR_DEALS d,
		        XTR_BOND_ALLOC_DETAILS R
		   where d.deal_no = r.deal_no
		   and d.maturity_date <= l_date
		   and nvl(r.avg_rate_last_processed, r.cross_ref_start_date)
		       < d.maturity_date);
Line: 2357

 select a.party_code,
        a.currency,
        a.account_number,
        a.bank_code,
        a.portfolio_code,
        a.year_calc_type
 from xtr_bank_accounts a,
      xtr_party_info b
 where a.party_code=b.party_code
   and b.party_type='C'
   and nvl(a.setoff_account_yn,'N') ='N'
   and nvl(a.opening_balance,0) <> 0 ;
Line: 2371

 select nvl(balance_adjustment,0)+nvl(statement_balance,0) base_amount,
       interest_rate, balance_date, day_count_type -- Added day_count_type for Interest Override
 from xtr_bank_balances
  where company_code = L_COMPANY_CODE
    and account_number = L_ACCOUNT_NO
    and balance_date <= l_date
  order by balance_date desc;
Line: 2384

 select a.deal_number,  -- bug 2345708
        a.amount_date,
	a.company_code,
        a.currency,
        a.account_no,
        a.limit_party,
        a.portfolio_code,
        a.product_type
 from xtr_mirror_dda_limit_row a
 where a.deal_type = 'IG';
Line: 2396

 select nvl(balance_out,0) base_amount,
        interest_rate,
        day_count_type  -- Added for Interest Override feature
 from xtr_intergroup_transfers
  where company_code = L_COMPANY_CODE
    and party_code= L_CPARTY_CODE
    and currency = L_CURRENCY
    and deal_number = L_DEAL_NUMBER
    and transfer_date <= l_date
  order by transfer_date desc,transaction_number desc;
Line: 2412

 select a.deal_number,
        a.transaction_number,
        a.status_code,
        a.company_code,
        a.cparty_code,
        a.deal_type,
        a.deal_subtype,
        a.currency,
        a.product_type,
        a.portfolio_code,
        a.year_calc_type,
        a.interest_rate,
        a.start_date,
        a.maturity_date,
        a.balance_out_bf base_amount,
        decode(nvl(a.principal_action,'DECRSE'),'INCRSE',
        nvl(a.PRINCIPAL_ADJUST,0),0-nvl(a.PRINCIPAL_ADJUST,0))  second_amount,
        a.interest,
        -- Added for Interest Override feature
        a.first_transaction_flag,
        d.day_count_type
 from XTR_ROLLOVER_TRANSACTIONS  a,
      -- Added for Interest Override feature
      XTR_DEALS d
 where a.deal_type in('TMM','RTMM')
   and a.start_date <=l_date
   and a.maturity_date >l_date
   and a.status_code='CURRENT'
   -- Added for Interest Override feature
   and d.deal_no = a.deal_number
Union all
 select a.deal_number,
        a.transaction_number,
        a.status_code,
        a.company_code,
        a.cparty_code,
        a.deal_type,
        a.deal_subtype,
        a.currency,
        a.product_type,
        a.portfolio_code,
        a.year_calc_type,
        a.interest_rate,
        a.start_date,
        a.maturity_date,
        a.balance_out base_amount,
        0  second_amount,
	a.interest,
        -- Added for Interest Override feature
        a.first_transaction_flag,
        d.day_count_type
 from XTR_ROLLOVER_TRANSACTIONS  a,
      -- Added for Interest Override feature
      XTR_DEALS d
 where a.deal_type ='ONC'
   and a.start_date <=l_date
   and nvl(a.maturity_date,l_date+1) >l_date
   and a.interest_rate is not null
   and a.status_code='CURRENT'
   -- Added for Interest Override feature
   and d.deal_no = a.deal_number
Union all
 select a.deal_number,
        a.transaction_number,
        a.status_code,
        a.company_code,
        a.cparty_code,
        a.deal_type,
        a.deal_subtype,
        a.currency,
        a.product_type,
        a.portfolio_code,
        a.year_calc_type,
        a.interest_rate,
        a.start_date,
        nvl(a.ni_reneg_date,a.maturity_date) maturity_date,
        nvl(a.balance_out,0)-nvl(a.interest,0) base_amount,
        0  second_amount,
	a.interest,
        -- Added for Interest Override feature
        a.first_transaction_flag,
        d.day_count_type
 from XTR_ROLLOVER_TRANSACTIONS  a,
      -- Added for Interest Override feature
      XTR_DEALS d
 where a.deal_type ='NI'
   and a.deal_subtype in ('BUY', 'ISSUE')
   and a.start_date <=l_date
   and nvl(a.ni_reneg_date,a.maturity_date) >l_date
   -- Added for Interest Override feature
   and d.deal_no = a.deal_number;
Line: 2510

 select CURRENCY_FIRST||'/'||CURRENCY_SECOND
  from XTR_BUY_SELL_COMBINATIONS
  where (CURRENCY_BUY = P_CURRENCY_BUY and CURRENCY_SELL = P_CURRENCY_SELL)
  or (CURRENCY_BUY = P_CURRENCY_SELL and CURRENCY_SELL = P_CURRENCY_BUY);
Line: 2516

 select ig_year_basis
 from XTR_MASTER_CURRENCIES
   where currency = L_CURRENCY;
Line: 2521

  select calc_basis
   from xtr_deals
   where deal_no=L_DEAL_NUMBER;
Line: 2526

 select b.year_calc_type, b.calc_type
 from XTR_DEALS A, XTR_BOND_ISSUES B
 where a.bond_issue = b.bond_issue_code
 and a.deal_no = D.DEAL_NUMBER;
Line: 2532

  select 1
    from XTR_COST_OF_FUNDS
     where as_at_date = l_date;
Line: 2537

 select sum(face_value), max(cross_ref_start_date)
 from xtr_bond_alloc_details
 where deal_no = D.DEAL_NUMBER
 and CROSS_REF_START_DATE <= l_date;
Line: 2590

    	Update XTR_BOND_ALLOC_DETAILS
        Set avg_rate_last_processed = L_DATE
        where deal_no = d.deal_number                      -- bug 4470022 Added where clause
        and cross_ref_start_date = l_cross_ref_start_date;
Line: 2899

   Select SUM(orig_coupon_amount),SUM(interest),SUM(original_amount)
    Into l_orig_coupon,l_interest,l_original_amount
    From xtr_rollover_transactions
     Where deal_number = p_deal_no;
Line: 2904

   SELECT COUNT(deal_no)
     INTO l_resale_count
     FROM xtr_bond_alloc_details
     WHERE deal_no=p_deal_no;
Line: 2944

 * and insert that summary information in the "temporary" XTR_AVG_RATES_RESULTS
 * table.  This table is actually always in the database but data that is
 * inserted is never committed so the results can be seen during a session
 * and erased once the session is over.  This way no maintenance is necessary
 * for this table.
 * This procedure takes an unique batch id so the caller can distinguish one
 * result set from another.  Currently, the XTR_EXPOSURE_TRANS_S sequence is
 * used to generate the id so it is advisable to use it to keep the uniqueness.
 */
PROCEDURE UPLOAD_AVG_RATES_RESULTS(
	p_batch_id		IN NUMBER,
	p_group_type		IN VARCHAR2,
	p_date_from		IN DATE,
	p_date_to		IN DATE,
	p_company_code		IN VARCHAR2,
	p_deal_type		IN VARCHAR2,
	p_currency		IN VARCHAR2,
	p_contra_ccy		IN VARCHAR2,
	p_cparty_code		IN VARCHAR2,
	p_product_type		IN VARCHAR2,
	p_portfolio_code	IN VARCHAR2,
	p_group_by_month 	IN VARCHAR2,
	p_group_by_year		IN VARCHAR2,
	p_group_by_company 	IN VARCHAR2,
	p_group_by_deal		IN VARCHAR2,
	p_group_by_currency	IN VARCHAR2,
	p_group_by_cparty	IN VARCHAR2,
	p_group_by_product	IN VARCHAR2,
	p_group_by_portfolio	IN VARCHAR2) IS
--
 v_date_format  VARCHAR2(15);
Line: 2996

  SELECT 'P', -- p_i,
	Decode(v_date_format, 'MM/DD/YYYY', Null, to_char(as_at_date, v_date_format)), -- as_at_date,
        Decode(p_group_by_company, 'Y', company_code, Null), -- company_code,
	Decode(p_group_by_deal, 'Y', deal_type, Null), -- deal_type,
	Decode(p_group_by_currency, 'Y', currency, Null), -- currency,
        Decode(p_group_by_product, 'Y', product_type, Null), -- product_type,
	Decode(p_group_by_portfolio, 'Y', portfolio_code, Null), -- portfolio_code,
	Decode(p_group_by_cparty, 'Y', party_code, Null), -- party_code,
	Sum(Decode(p_currency, Null, hce_gross_principal, gross_principal))/(p_date_to - p_date_from + 1) principal,
  --  Sum(interest) interest,  RV Bug# 1291156 06-APR-2001
      Sum(Decode(p_currency,Null,hce_interest,interest)) interest,
      decode(Sum(gross_principal),0,0,
        (sum(interest) * 36500 /(sum(gross_principal)/(p_date_to-p_date_from+1))
        /(p_date_to - p_date_from +1))) avg_rate,
  	Sum(no_of_deals) num_deals
  FROM xtr_cost_of_funds_v
  WHERE as_at_date BETWEEN p_date_from AND p_date_to
   AND company_code = p_company_code
   AND deal_type LIKE Nvl(p_deal_type,'%')
   AND (   (deal_type = 'NI' AND deal_subtype = 'BUY')
        OR (deal_type = 'BOND' AND deal_subtype = 'BUY')
	OR (deal_type IN ('ONC', 'CA', 'IG', 'TMM', 'RTMM') AND deal_subtype = p_group_type)  )
   AND currency LIKE Nvl(p_currency,'%')
   AND Nvl(party_code,'%') LIKE Nvl(p_cparty_code,'%')
   AND Nvl(portfolio_code,'%') LIKE Nvl(p_portfolio_code,'%')
   AND Nvl(product_type,'%') LIKE Nvl(p_product_type,'%')
  GROUP BY 'P',
	Decode(v_date_format, 'MM/DD/YYYY', Null, to_char(as_at_date, v_date_format)),
        Decode(p_group_by_company, 'Y', company_code, Null),
	Decode(p_group_by_deal, 'Y', deal_type, Null),
	Decode(p_group_by_currency, 'Y', currency, Null),
        Decode(p_group_by_product, 'Y', product_type, Null),
	Decode(p_group_by_portfolio, 'Y', portfolio_code, Null),
	Decode(p_group_by_cparty, 'Y', party_code, Null);
Line: 3035

  SELECT 'P', -- p_i,
	Decode(v_date_format, 'MM/DD/YYYY', Null, to_char(as_at_date, v_date_format)), -- as_at_date,
        Decode(p_group_by_company, 'Y', company_code, Null), -- company_code,
	Decode(p_group_by_deal, 'Y', deal_type, Null), -- deal_type,
	Decode(p_group_by_currency, 'Y', currency, Null), -- currency,
        Decode(p_group_by_product, 'Y', product_type, Null), -- product_type,
	Decode(p_group_by_portfolio, 'Y', portfolio_code, Null), -- portfolio_code,
	Decode(p_group_by_cparty, 'Y', party_code, Null), -- party_code,
	Sum(Decode(p_currency, Null, hce_gross_principal, gross_principal))/(p_date_to - p_date_from + 1) principal,
  --  Sum(interest) interest,  RV Bug# 1291156 06-APR-2001
      Sum(Decode(p_currency,Null,hce_interest,interest)) interest,
      decode(Sum(gross_principal),0,0,
        (sum(interest) * 36500 /(sum(gross_principal)/(p_date_to-p_date_from+1))
        /(p_date_to - p_date_from +1))) avg_rate,
  	Sum(no_of_deals) num_deals
  FROM xtr_cost_of_funds_v
  WHERE as_at_date BETWEEN p_date_from AND p_date_to
   AND company_code IN (SELECT p.party_code
			FROM xtr_parties_v p
			WHERE p.party_type = 'C')
   AND deal_type LIKE Nvl(p_deal_type,'%')
   AND (   (deal_type = 'NI' AND deal_subtype = 'BUY')
        OR (deal_type = 'BOND' AND deal_subtype = 'BUY')
	OR (deal_type IN ('ONC', 'CA', 'IG', 'TMM', 'RTMM') AND deal_subtype = p_group_type)  )
   AND currency LIKE Nvl(p_currency,'%')
   AND Nvl(party_code,'%') LIKE Nvl(p_cparty_code,'%')
   AND Nvl(portfolio_code,'%') LIKE Nvl(p_portfolio_code,'%')
   AND Nvl(product_type,'%') LIKE Nvl(p_product_type,'%')
  GROUP BY 'P',
	Decode(v_date_format, 'MM/DD/YYYY', Null, to_char(as_at_date, v_date_format)),
        Decode(p_group_by_company, 'Y', company_code, Null),
	Decode(p_group_by_deal, 'Y', deal_type, Null),
	Decode(p_group_by_currency, 'Y', currency, Null),
        Decode(p_group_by_product, 'Y', product_type, Null),
	Decode(p_group_by_portfolio, 'Y', portfolio_code, Null),
	Decode(p_group_by_cparty, 'Y', party_code, Null);
Line: 3075

  SELECT 'P', -- p_i,
	Decode(v_date_format, 'MM/DD/YYYY', Null, to_char(as_at_date, v_date_format)), -- as_at_date,
        Decode(p_group_by_company, 'Y', company_code, Null), -- company_code,
	Decode(p_group_by_deal, 'Y', deal_type, Null), -- deal_type,
	Decode(p_group_by_currency, 'Y', currency, Null), -- currency,
        Decode(p_group_by_product, 'Y', product_type, Null), -- product_type,
	Decode(p_group_by_portfolio, 'Y', portfolio_code, Null), -- portfolio_code,
	Decode(p_group_by_cparty, 'Y', party_code, Null), -- party_code,
	Sum(Decode(p_currency, Null, hce_gross_principal, gross_principal))/(p_date_to - p_date_from + 1) principal,
  --  Sum(interest) interest,  RV Bug# 1291156 06-APR-2001
      Sum(Decode(p_currency,Null,hce_interest,interest)) interest,
      decode(Sum(gross_principal),0,0,
        (sum(interest) * 36500 /(sum(gross_principal)/(p_date_to-p_date_from+1))
        /(p_date_to - p_date_from +1))) avg_rate,
  	Sum(no_of_deals) num_deals
  FROM xtr_cost_of_funds_v
  WHERE as_at_date BETWEEN p_date_from AND p_date_to
   AND company_code = p_company_code
   AND deal_type LIKE Nvl(p_deal_type,'%')
   AND (   (deal_type = 'NI' AND deal_subtype = 'ISSUE')
        OR (deal_type = 'BOND' AND deal_subtype = 'ISSUE')
	OR (deal_type IN ('ONC', 'CA', 'IG', 'TMM', 'RTMM') AND deal_subtype = p_group_type)  )
   AND currency LIKE Nvl(p_currency,'%')
   AND Nvl(party_code,'%') LIKE Nvl(p_cparty_code,'%')
   AND Nvl(portfolio_code,'%') LIKE Nvl(p_portfolio_code,'%')
   AND Nvl(product_type,'%') LIKE Nvl(p_product_type,'%')
  GROUP BY 'P',
	Decode(v_date_format, 'MM/DD/YYYY', Null, to_char(as_at_date, v_date_format)),
        Decode(p_group_by_company, 'Y', company_code, Null),
	Decode(p_group_by_deal, 'Y', deal_type, Null),
	Decode(p_group_by_currency, 'Y', currency, Null),
        Decode(p_group_by_product, 'Y', product_type, Null),
	Decode(p_group_by_portfolio, 'Y', portfolio_code, Null),
	Decode(p_group_by_cparty, 'Y', party_code, Null);
Line: 3113

  SELECT 'P', -- p_i,
	Decode(v_date_format, 'MM/DD/YYYY', Null, to_char(as_at_date, v_date_format)), -- as_at_date,
        Decode(p_group_by_company, 'Y', company_code, Null), -- company_code,
	Decode(p_group_by_deal, 'Y', deal_type, Null), -- deal_type,
	Decode(p_group_by_currency, 'Y', currency, Null), -- currency,
        Decode(p_group_by_product, 'Y', product_type, Null), -- product_type,
	Decode(p_group_by_portfolio, 'Y', portfolio_code, Null), -- portfolio_code,
	Decode(p_group_by_cparty, 'Y', party_code, Null), -- party_code,
	Sum(Decode(p_currency, Null, hce_gross_principal, gross_principal))/(p_date_to - p_date_from + 1) principal,
  --  Sum(interest) interest,  RV Bug# 1291156 06-APR-2001
      Sum(Decode(p_currency,Null,hce_interest,interest)) interest,
      decode(Sum(gross_principal),0,0,
        (sum(interest) * 36500 /(sum(gross_principal)/(p_date_to-p_date_from+1))
        /(p_date_to - p_date_from +1))) avg_rate,
  	Sum(no_of_deals) num_deals
  FROM xtr_cost_of_funds_v
  WHERE as_at_date BETWEEN p_date_from AND p_date_to
   AND company_code IN (SELECT p.party_code
			FROM xtr_parties_v p
			WHERE p.party_type = 'C')
   AND deal_type LIKE Nvl(p_deal_type,'%')
   AND (   (deal_type = 'NI' AND deal_subtype = 'ISSUE')
        OR (deal_type = 'BOND' AND deal_subtype = 'ISSUE')
	OR (deal_type IN ('ONC', 'CA', 'IG', 'TMM', 'RTMM') AND deal_subtype = p_group_type)  )
   AND currency LIKE Nvl(p_currency,'%')
   AND Nvl(party_code,'%') LIKE Nvl(p_cparty_code,'%')
   AND Nvl(portfolio_code,'%') LIKE Nvl(p_portfolio_code,'%')
   AND Nvl(product_type,'%') LIKE Nvl(p_product_type,'%')
  GROUP BY 'P',
	Decode(v_date_format, 'MM/DD/YYYY', Null, to_char(as_at_date, v_date_format)),
        Decode(p_group_by_company, 'Y', company_code, Null),
	Decode(p_group_by_deal, 'Y', deal_type, Null),
	Decode(p_group_by_currency, 'Y', currency, Null),
        Decode(p_group_by_product, 'Y', product_type, Null),
	Decode(p_group_by_portfolio, 'Y', portfolio_code, Null),
	Decode(p_group_by_cparty, 'Y', party_code, Null);
Line: 3153

  SELECT 'P', -- p_i,
	Decode(v_date_format, 'MM/DD/YYYY', Null, to_char(as_at_date, v_date_format)), -- as_at_date,
        Decode(p_group_by_company, 'Y', company_code, Null), -- company_code,
	Decode(p_group_by_deal, 'Y', deal_type, Null), -- deal_type,
	currency_combination,
        Decode(p_group_by_product, 'Y', product_type, Null), -- product_type,
	Decode(p_group_by_portfolio, 'Y', portfolio_code, Null), -- portfolio_code,
	Decode(p_group_by_cparty, 'Y', party_code, Null), -- party_code,
        Sum(gross_principal)/((p_date_to-p_date_from)+1) principal,
        Sum(interest) interest,
	Decode(sum(gross_base_amount),0,0, Sum(gross_contra_trans_amount)/Sum(gross_base_amount)) avg_rate,
  	Sum(no_of_deals) num_deals,
	Decode(Sum(gross_base_amount),0,0, Sum(gross_contra_spot_amount)/Sum(gross_base_amount)) avg_spot_rate
  FROM xtr_cost_of_funds_v
  WHERE as_at_date BETWEEN p_date_from AND p_date_to
   AND company_code = p_company_code
   AND deal_type LIKE Nvl(p_deal_type,'%')
   AND deal_type = 'FX'
   AND currency LIKE Nvl(p_currency,'%')
   AND Nvl(contra_ccy,'%') LIKE Nvl(p_contra_ccy,'%')
   AND Nvl(party_code,'%') LIKE Nvl(p_cparty_code,'%')
   AND Nvl(portfolio_code,'%') LIKE Nvl(p_portfolio_code,'%')
   AND Nvl(product_type,'%') LIKE Nvl(p_product_type,'%')
  GROUP BY 'P',
	Decode(v_date_format, 'MM/DD/YYYY', Null, to_char(as_at_date, v_date_format)),
        Decode(p_group_by_company, 'Y', company_code, Null),
	Decode(p_group_by_deal, 'Y', deal_type, Null),
	currency_combination,
        Decode(p_group_by_product, 'Y', product_type, Null),
	Decode(p_group_by_portfolio, 'Y', portfolio_code, Null),
	Decode(p_group_by_cparty, 'Y', party_code, Null);
Line: 3188

  SELECT 'P', -- p_i,
	Decode(v_date_format, 'MM/DD/YYYY', Null, to_char(as_at_date, v_date_format)), -- as_at_date,
        Decode(p_group_by_company, 'Y', company_code, Null), -- company_code,
	Decode(p_group_by_deal, 'Y', deal_type, Null), -- deal_type,
	currency_combination,
        Decode(p_group_by_product, 'Y', product_type, Null), -- product_type,
	Decode(p_group_by_portfolio, 'Y', portfolio_code, Null), -- portfolio_code,
	Decode(p_group_by_cparty, 'Y', party_code, Null), -- party_code,
        Sum(gross_principal)/((p_date_to-p_date_from)+1) principal,
        Sum(interest) interest,
        Decode(sum(gross_base_amount),0,0, Sum(gross_contra_trans_amount)/Sum(gross_base_amount)) avg_rate,
        Sum(no_of_deals) num_deals,
        Decode(Sum(gross_base_amount),0,0, Sum(gross_contra_spot_amount)/Sum(gross_base_amount)) avg_spot_rate
  FROM xtr_cost_of_funds_v
  WHERE as_at_date BETWEEN p_date_from AND p_date_to
   AND company_code IN (SELECT p.party_code
			FROM xtr_parties_v p
			WHERE p.party_type = 'C')
   AND deal_type LIKE Nvl(p_deal_type,'%')
   AND deal_type = 'FX'
   AND currency LIKE Nvl(p_currency,'%')
   AND Nvl(contra_ccy,'%') LIKE Nvl(p_contra_ccy,'%')
   AND Nvl(party_code,'%') LIKE Nvl(p_cparty_code,'%')
   AND Nvl(portfolio_code,'%') LIKE Nvl(p_portfolio_code,'%')
   AND Nvl(product_type,'%') LIKE Nvl(p_product_type,'%')
  GROUP BY 'P',
	Decode(v_date_format, 'MM/DD/YYYY', Null, to_char(as_at_date, v_date_format)),
        Decode(p_group_by_company, 'Y', company_code, Null),
	Decode(p_group_by_deal, 'Y', deal_type, Null),
	currency_combination,
        Decode(p_group_by_product, 'Y', product_type, Null),
	Decode(p_group_by_portfolio, 'Y', portfolio_code, Null),
	Decode(p_group_by_cparty, 'Y', party_code, Null);
Line: 3225

  SELECT Min(transaction_rate), Max(transaction_rate)
  FROM xtr_position_history
  WHERE as_at_date BETWEEN p_from_date and p_to_date
    AND ((v_company IS NOT NULL AND company_code = v_company)
      OR (v_company IS NULL AND
	  company_code IN (SELECT p.party_code
				FROM xtr_parties_v p
				WHERE p.party_type = 'C')))
    AND deal_type LIKE Nvl(v_deal, '%')
    AND (product_type LIKE Nvl(v_product, '%') or product_type is null)
    AND (portfolio_code LIKE Nvl(v_portfolio, '%') or portfolio_code is null)
    AND (cparty_code LIKE Nvl(v_cparty, '%') or cparty_code is null)
    AND ((p_p_i = 'P') AND ((deal_type = 'NI' AND deal_subtype = 'BUY')
                          OR (deal_type = 'BOND' AND deal_subtype = 'BUY')
			  OR ((deal_type IN ('ONC', 'CA', 'IG', 'TMM', 'RTMM')) AND (deal_subtype = p_group_type))));
Line: 3244

  SELECT Min(transaction_rate), Max(transaction_rate)
  FROM xtr_position_history
  WHERE as_at_date BETWEEN p_from_date and p_to_date
    AND ((v_company IS NOT NULL AND company_code = v_company)
      OR (v_company IS NULL AND
	  company_code IN (SELECT p.party_code
				FROM xtr_parties_v p
				WHERE p.party_type = 'C')))
    AND deal_type LIKE Nvl(v_deal, '%')
    AND (product_type LIKE Nvl(v_product, '%') or product_type is null)
    AND (portfolio_code LIKE Nvl(v_portfolio, '%') or portfolio_code is null)
    AND (cparty_code LIKE Nvl(v_cparty, '%') or cparty_code is null)
    AND ((p_p_i = 'P') AND ((deal_type = 'NI' AND deal_subtype = 'ISSUE')
                          OR (deal_type = 'BOND' AND deal_subtype = 'ISSUE')
			  OR ((deal_type IN ('ONC', 'CA', 'IG', 'TMM', 'RTMM')) AND (deal_subtype = p_group_type))));
Line: 3262

  SELECT Min(transaction_rate), Max(transaction_rate)
  FROM xtr_position_history
  WHERE as_at_date BETWEEN p_from_date and p_to_date
    AND ((v_company IS NOT NULL AND company_code = v_company)
      OR (v_company IS NULL AND
	  company_code IN (SELECT p.party_code
				FROM xtr_parties_v p
				WHERE p.party_type = 'C')))
    AND deal_type LIKE Nvl(v_deal, '%')
    AND (product_type LIKE Nvl(v_product, '%') or product_type is null)
    AND (portfolio_code LIKE Nvl(v_portfolio, '%') or portfolio_code is null)
    AND (cparty_code LIKE Nvl(v_cparty, '%') or cparty_code is null)
    AND (currency_combination LIKE Nvl(v_currency_combination, '%') or
         currency_combination is null)
    AND ((p_p_i = 'P') AND (deal_type = 'FX'));
Line: 3388

   INSERT INTO xtr_avg_rates_results(unique_id, p_i, period, date_from, date_to, company_code, deal_type,
       product_type, portfolio_code, cparty_code, currency, currency_combination, principal,
       interest, average_contract_rate, average_spot_rate, minimum_rate, maximum_rate, num_deals)
       VALUES(
	p_batch_id, v_p_i, v_period,
	v_from_date, v_to_date, v_company,
	v_deal, v_product, v_portfolio, v_cparty,
	v_currency, v_currency_combination, v_principal,
	v_interest, v_avg_contract_rate, v_avg_spot_rate,
	v_min_rate, v_max_rate, v_num_deals);