[Home] [Help]
1201: rec.effective_date := rec.revldate;
1202: r_rd.effective_days := rec.period_end - rec.period_start;
1203: r_rd.amount_type := 'CCYUNRL';
1204: xtr_revl_unreal_log(rec, 0, 0, 0, 0, null, r_rd, retcode);
1205: update XTR_INTERGROUP_TRANSFERS
1206: set first_batch_id = rec.batch_id
1207: where company_code = rec.company_code
1208: and deal_number = rec.deal_no
1209: and transfer_date <= rec.revldate;
3297: --------------------------------------------------------------
3298: /******************************************************************/
3299: /* This procedure pass one deal no for each company and calculate */
3300: /* (un)realized currency G/L and average exchange rate for the row */
3301: /* in xtr_intergroup_transfers for deal type IG */
3302: /*******************************************************************/
3303: PROCEDURE xtr_revl_ig_curr_gl(
3304: rec IN OUT NOCOPY xtr_revl_rec,
3305: retcode OUT NOCOPY NUMBER) IS
3349: SELECT a.transfer_date, a.balance_out, a.transaction_number, a.first_batch_id,
3350: a.product_type, a.portfolio,
3351: b.transfer_date, b.balance_out, b.transaction_number, b.product_type,
3352: b.portfolio
3353: FROM XTR_INTERGROUP_TRANSFERS a,
3354: XTR_INTERGROUP_TRANSFERS b
3355: WHERE a.company_code = rec.company_code
3356: AND a.company_code = b.company_code
3357: AND a.deal_number = rec.deal_no
3350: a.product_type, a.portfolio,
3351: b.transfer_date, b.balance_out, b.transaction_number, b.product_type,
3352: b.portfolio
3353: FROM XTR_INTERGROUP_TRANSFERS a,
3354: XTR_INTERGROUP_TRANSFERS b
3355: WHERE a.company_code = rec.company_code
3356: AND a.company_code = b.company_code
3357: AND a.deal_number = rec.deal_no
3358: AND a.deal_number = b.deal_number
3360: AND ((b.transaction_number > a.transaction_number and a.transfer_date = b.transfer_date)
3361: or(b.transfer_date > a.transfer_date))
3362: AND a.transfer_date =
3363: (select max(transfer_date)
3364: from XTR_INTERGROUP_TRANSFERS c
3365: where c.deal_number = a.deal_number
3366: and ((c.transfer_date < b.transfer_date) or
3367: (c.transaction_number < b.transaction_number and c.transfer_date = b.transfer_date)))
3368: AND a.last_batch_id is null
3372:
3373: Cursor C_CURR_BALANCE is
3374: SELECT b.transfer_date, b.balance_out, b.transaction_number,
3375: b.product_type, b.portfolio
3376: FROM XTR_INTERGROUP_TRANSFERS b
3377: WHERE b.company_code = rec.company_code
3378: AND b.deal_number = rec.deal_no
3379: AND b.transfer_date <= rec.revldate
3380: AND b.last_batch_id is null
3382:
3383: Cursor C_PREV_BALANCE is
3384: SELECT a.transfer_date, a.balance_out, a.transaction_number, a.first_batch_id,
3385: a.product_type, a.portfolio
3386: FROM XTR_INTERGROUP_TRANSFERS a
3387: WHERE a.company_code = rec.company_code
3388: AND a.deal_number = rec.deal_no
3389: AND ((l_trans_no1 > a.transaction_number and a.transfer_date = l_bal_date1)
3390: or(l_bal_date1 > a.transfer_date))
3397: -------------------------------------------------------------------------------
3398: Cursor C_LAST_BALANCE is
3399: SELECT transaction_number, transfer_date, balance_out,
3400: first_batch_id, product_type, portfolio
3401: FROM XTR_INTERGROUP_TRANSFERS
3402: Where deal_number = rec.deal_no
3403: AND transfer_date <= rec.revldate
3404: AND last_batch_id is null
3405: ORDER BY transfer_date desc, transaction_number desc;
3405: ORDER BY transfer_date desc, transaction_number desc;
3406:
3407: /*-------------------------- AW 25/10/01 ----------------------
3408: and transfer_date = (select max(transfer_date)
3409: from XTR_INTERGROUP_TRANSFERS
3410: where deal_number = rec.deal_no)
3411: and transaction_number = (select max(transaction_number)
3412: from XTR_INTERGROUP_TRANSFERS
3413: where deal_number = rec.deal_no)
3408: and transfer_date = (select max(transfer_date)
3409: from XTR_INTERGROUP_TRANSFERS
3410: where deal_number = rec.deal_no)
3411: and transaction_number = (select max(transaction_number)
3412: from XTR_INTERGROUP_TRANSFERS
3413: where deal_number = rec.deal_no)
3414: and last_batch_id is null;
3415: */-------------------------------------------------------------
3416:
3419: -- Select the last balance's average exchange rate
3420: -----------------------------------------------------
3421: CURSOR c_last_ig_avg_rate IS
3422: SELECT average_exchange_rate
3423: FROM xtr_intergroup_transfers
3424: WHERE deal_number = rec.deal_no
3425: AND transfer_date <= l_bal_date0
3426: AND first_batch_id = l_pre_batch_id
3427: ORDER BY transfer_date desc, transaction_number desc;
3607: l_avg_rate := l_avg_rate0;
3608: end if;
3609:
3610: -------------------------------------------------------------------------
3611: -- Update the first record of the pair in XTR_INTERGROUP_TRANSFERS table
3612: -------------------------------------------------------------------------
3613: update XTR_INTERGROUP_TRANSFERS
3614: set first_batch_id = nvl(first_batch_id, l_first_batch_id),
3615: last_batch_id = nvl(last_batch_id, l_last_batch_id),
3609:
3610: -------------------------------------------------------------------------
3611: -- Update the first record of the pair in XTR_INTERGROUP_TRANSFERS table
3612: -------------------------------------------------------------------------
3613: update XTR_INTERGROUP_TRANSFERS
3614: set first_batch_id = nvl(first_batch_id, l_first_batch_id),
3615: last_batch_id = nvl(last_batch_id, l_last_batch_id),
3616: exchange_rate = nvl(exchange_rate, l_ex_rate0),
3617: average_exchange_rate = nvl(average_exchange_rate, l_avg_rate0)
3619: and deal_number = rec.deal_no
3620: and transaction_number = l_trans_no0;
3621:
3622: -------------------------------------------------------------------------
3623: -- Update the second record of the pair in XTR_INTERGROUP_TRANSFERS table
3624: -------------------------------------------------------------------------
3625: update XTR_INTERGROUP_TRANSFERS
3626: set average_exchange_rate = l_avg_rate
3627: where company_code = rec.company_code
3621:
3622: -------------------------------------------------------------------------
3623: -- Update the second record of the pair in XTR_INTERGROUP_TRANSFERS table
3624: -------------------------------------------------------------------------
3625: update XTR_INTERGROUP_TRANSFERS
3626: set average_exchange_rate = l_avg_rate
3627: where company_code = rec.company_code
3628: and deal_number = rec.deal_no
3629: and transaction_number = l_trans_no1;
3707: end if;
3708: xtr_revl_unreal_log(rec, 0, 0, 0, 0, l_unrel_cur_gl, r_rd, retcode);
3709:
3710: ------------------------------------------------------------------
3711: -- Update the last row into XTR_INTERGROUP_TRANSFERS table
3712: ------------------------------------------------------------------
3713: update XTR_INTERGROUP_TRANSFERS
3714: set first_batch_id = nvl(first_batch_id, l_first_batch_id),
3715: exchange_rate = nvl(exchange_rate, l_ex_rate0),
3709:
3710: ------------------------------------------------------------------
3711: -- Update the last row into XTR_INTERGROUP_TRANSFERS table
3712: ------------------------------------------------------------------
3713: update XTR_INTERGROUP_TRANSFERS
3714: set first_batch_id = nvl(first_batch_id, l_first_batch_id),
3715: exchange_rate = nvl(exchange_rate, l_ex_rate0),
3716: average_exchange_rate = nvl(average_exchange_rate, l_avg_rate0)
3717: where company_code = rec.company_code
4323: elsif rec.deal_type = 'IG' then
4324: -- IG's FV is for reference only. We don't take it to calculate G/L.
4325: select BALANCE_OUT
4326: into init_fv
4327: from XTR_INTERGROUP_TRANSFERS_V
4328: where DEAL_NUMBER = rec.deal_no
4329: and TRANSACTION_NUMBER = rec.trans_no;
4330:
4331: elsif rec.deal_type = 'CA' then
9816: --------------------------------------------------------
9817: /*****************************************************************/
9818: /* This procedure insert unrealized values into xtr_revaluation_details table*/
9819: /* Also update xtr_deals and xtr_rollover_transactions, */
9820: /* xtr_bank_balance, xtr_intergroup_transfers */
9821: /******************************************************************/
9822: PROCEDURE xtr_revl_unreal_log(
9823: rec IN xtr_revl_rec,
9824: unrel_pl_value IN NUMBER,
10019: --------------------------------------------------------------------
10020: /*****************************************************************/
10021: /* This procedure insert realized values into xtr_revaluation_details table*/
10022: /* Also update xtr_deals and xtr_rollover_transactions, */
10023: /* xtr_bank_balance, xtr_intergroup_transfers */
10024: /******************************************************************/
10025: PROCEDURE xtr_revl_real_log (
10026: rec IN xtr_revl_rec,
10027: rel_pl_value IN NUMBER,