Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 209

CREATE OR REPLACE PACKAGE BODY DEPKS_RETAILTELLERUPLOAD

/
*----------------------------------------------------------------------------------
-------
**
** File Name : depks_retailtellerupload.SQL
**
** Module : RT
**
** This source is part of the FLEXCUBE Corporate - Corporate Banking Software
System
** and is copyrighted by Oracle Financial Services Software Limited.
**
** All rights reserved. No part of it may be reproduced, stored in a retrival
system,
** adopted or transmitted in any form or by
means,electronical,mechanical,photographic,
** optic recording or otherwise,translated in any language or computer language,
** without prior written permission of Oracle Financial Services Software Limited.
**
**
** Oracle Financial Services Software Limited.
** 10-11, SDF I, SEEPZ, Andheri (East),
** Mumbai - 400096.
** India
**
** Copyright ? 2006 - 2015 by Oracle Financial Services Software Limited.
-----------------------------------------------------------------------------------
--*/
/
*----------------------------------------------------------------------------------
--
-: CHANGE HISTORY :-
**********************
19-DEC-06 FCC73ITR1 SFR 258 Code commeted becuase ofs_acc value was assigned to
ofs_branch
20-DEC-06 FCC73ITR1 SFR 319 Validation added to check suplicate xref value
23-DEC-06 FCC73ITR1 SFR 439 Waiver flag was not working properly
23-DEC-06 FCC73ITR1 SFR 471 Additinal argument p_source added to validate the
source of request
24-DEC-06 FCC73ITR1 SFR 492 IF Condition for MSGDETS is removed as it is not
mandatory in request
30-DEC-06 FCC73ITR2 SFR 58 Changes to insert into record log and to default the
values in case of FT transaction
11-JUN-2008 FCUBSV.UM_10.1.0.0.0.0.0 ILM Changes
25-JUN-08 FCUBS 10.1 Switch Interface Tuning Changes starts
26-SEP-2008 FC 10.2 24X7 ITR2
29-SEPT-2008 FCUBS10.2 RETRO Changes for SFR 284
06-Jan-2009 FC UBS 10.2.0.0.0.0.2 BM Changes Modified By : Sunil
Modified On : 06-Jan-2009
Modified Reason : Benchmark Performance changes PF-023
Search String : FC 10 Tuning PF-023
4/10/2009 FC103ITR2 SFR-202 Added Beneficiary details to
'Transaction-Details' block
29-OCT-2009 FCUBS11.0 9NT1316 Changes done for Mantas Integration
10-Mar-2010 FCUBS 11.1 Staff account changes Modified By :
Shubhanshu
Modified On : 10-Mar-2010
Modified Reason : Staff account restriction
Search String : Staff account restriction

1-JUN-2010 FCUBS11.1 ITR1 SFR-3669 Negotiated rate enhancement changes


incorporated
09-06-2010 FCUBS11.1 Changes SFR#3808 for checker id updation

16-sep-2010 FCUBS 11.2 kernel Modified By : Niranjana


Modified On : 16-sep-2010
Modified Reason : NEFT/RTGS CHANGES (To capture PC details)
Search String : NEFT/RTGS CHANGES 1405
Changed By : HEMALATHA
Changed On : 13-09-2010
Changed Description : Resolving Related Customer for Customer Group
Search String : 9NT1428- FCUBS 11.2 Customer Group CHANGES

Changed By : SURENDRA
Changed On : 13-09-2010
Changed Description : Project and Unit Data Capture
Search String : 9NT1428- FCUBS 11.2 CHANGES by Surendra

Changed By : Aslam Ershath


Changed On : 27/09/2010
Change Description : FCUBS 11.2 CHANGES FOR CREDIT CARD PAYMENTS
Search string : 9NT1428 CREDIT CARD PAYMENTS CHANGES BY ASLAM

Changed By : Aslam Ershath


Changed On : 30/10/2010
Change Description : 9NT1428 Kernel 11.2 SFR418 ITR1
Search string : 9NT1428, ITR1, SFR#418

Chnaged By :Charchika Sahoo


Changed On :04-Nov-2010
Change Description :FCUBS11.2 ITR1 SFR#504 code changes for Reject code
Search String :FCUBS11.2 ITR1 SFR#504 Reject Code changes

Changed By : Monika Verma


Changed On : 04-Nov-2010
Change Description : FCUBS11.2 SFR 521 Stale Cheque Validation
Search string : FCUBS11.2 Stale Cheque Validation

Changed By : Monika Verma


Changed On :16-Nov-2010
Change Description : FCUBS11.2 SFR 727 No of rejections validation
Search string : --fcubs11.2 it1 sfr 727

Changed By : Ravikuamr G
Changed On : 22-Nov-2010
Change Description : FCUBS11.2 SFR 1155 Cheque Issue date validation
based on the account open date.
Search string : fcubs11.2 itr1 sfr 1115

Changed By : Aslam Ershath


Changed On : 23-Nov-2010
Description : FCUBS11.2 ITR1 SFR1189 changes for credit
card xsd
Search string : FCUBS11.2 ITR1 SFR1189
Changed By : Charchika Sahoo
Changed On :24-Nov-2010
Change Description : FCUBS 11.2 ITR1 SFR#1224 reject code updation
Search String :FCUBS 11.2 ITR1 SFR#1224 code changes

Changed By : Aslam Ershath


Changed On : 24-Nov-2010
Description : FCUBS11.2 ITR1 SFR1293 changes TO not calcute
chg desc if waiver
Search string : 9NT1428 SFR1293 ITR1

Changed By : Monika Verma


Changed On : 25-Nov-2010
Description : FCUBS11.2 ITR1 SFR1219
Search string : --fcubs11.2 it1 sfr1219

Changed By : Ravikumar G
Changed On : 07-Dec-2010
Description : 9NT1428 FCUBS 11.2 ITR#2 SFR No 67, 91 Done
the Cheque validations before proceeding with the accounting entries
Search string : 9NT1428 ITR#2 SFR No 67, 91

Changed By : Charchika Sahoo


Changed On :08-Dec-2010
Description :FCUBS11.2 ITR2 SFR#58
Search String :FCUBS11.2 ITR2 SFR#58 changes

Changed By : Aslam Ershath


Changed On : 15-Dec-2010
Description : FCUBS11.2 ITR2 SFR362 Changes in Rejecting
the transaction without reject code
Search string : FCUBS11.2 SFR362 ITR2

Changed By : Devi Prasad


Changed On : 17-feb-2011
Description : MBU22 - 11.2.0.1.0BOMLAE?<<validating the
till limit>> and <<validating HO account>>
Search string : MBU22 - 11.2.0.1.0BOMLAE

Modified By : Surabhi Bilaiya


Modified On : 9-MAR-2011
Modified Reason : Validation for Mandatory Voucher Narrative
Search String :MBU22 - 11.2.0.1.0BOMLAE Mandatory Voucher Narrative

Changed By : Rajesh
Changed On : 19-April-2011
Description : MBU22 SFR#163
Search string : MBU22 SFR#163

Changed By : Devi Prasad


Changed On : 11may-2011
Description : MBU22 SFR#49(ITR2)
Search string : MBU22 - 11.2.0.1.0BOMLAE

Changed By : Arif N
Changed On : 10 Jul-2011
Description : MBU11 DEFLT00007844
Search string : DEFLT00007844

SFR No : AEDMBU UAT1 DEFLT00007844


Modified on : 10-JUL-2011
Description : Modified the code to correct the amount issue in TVQR
Search string : DEFLT00007844

SFR No : AEDMBU UAT1 SFR#DEFLT00007824


Modified on : 10-jul-2011
Description : Overried raised if in LOCH screen issue date is given as
future date.
Search string : AEDMBU UAT1 SFR#DEFLT00007824 CHANGES

Changed By : Tanmay Banerjee


Changed On : 07-JUl-2011,Release-FCUBS_VUM_11.2.0.0,Defect stage-
IMP,SFR-194
Description : Removed the function as fn_validate_cheque_details.
Validations has to be fired based on check mandatory flag
in TXN code. Also,Returned cheques should be allowed again,override added.
Search string : BLR_11.2_IMP_BDTOBL_SFR#194

SFR No : AEDMBU UAT1 SFR#DEFLT00007527


Modified on : 26-JULY-2011
Description : Added the function to validate user input role limt
Search string : AEDMBU UAT1 SFR#DEFLT00007527 Changes

SFR No : AEDMBU UAT1 DEFLT00008365


Modified on : 01-AUG-2011
Description : Validation for insufficient funds check during reversal.
Search string : AEDMBU UAT1 DEFLT00008365 Changes

SFR No : AEDMBU UATA SFR#DEFLT00009177


Modified on : 07-aug-2011
Description : Changes for Frozen account
Search string : AEDMBU UATA DEFLT00009177 Changes

SFR No : AEDMBU UATA SFR#DEFLT00009813


Modified on : 07-aug-2011
Description : exception handled for sttb account since it is failing
for 9009 and 9010 screens
Search string : AEDMBU UATA DEFLT00009813 Changes

SFR No: AEDMBU UATA SFR#DEFLT00009055


Modified on : 23-aug-2011
Description : Code was amended to prevent transaction when till limit
is already exhausted
Search string : AEDMBU UATA SFR#DEFLT00009055 Changes

SFR No : AEDMBU UATB DEFLT00010455


Modified on : 07-SEP-2011
Description : added validation if check issue date is selected as
future date
Search string : AEDMBU UATB DEFLT00010455 Changes

SFR No : AEDMBU UATB DEFLT00010952


Modified on : 15-SEP-2011
Description : added validation to block reversal for back dated
transactions.
Search string : AEDMBU UATB DEFLT00010952 Changes

SFR No : DEFLT00011786
Modified on : 5-oct-2011
Description : pos trns are failing.
Search string : DEFLT00011786

SFR No : AEDMBU QAUATC DEF-TEL-008


Modified on : 19-oct-2011
Description : Till limit validation has to throw error if limit is also
exatly matching
Search string : AEDMBU QAUATC DEF-TEL-008

Modified By : Praveen
Modified On : 29-Nov-2011
Modified Reason : Composite Mis details are not populating.
Search String : AEDMBU QAPROD SFR#AEDMBUFCC0005 changes

SFR No : prod-060
Modified on : 20-dec-2011
Description : change done to include all the branches for processing
retry transactions.
Search string : prod-060

Modified By : Prasad
Modified On : 08-Mar-2012
Modified Reason : Staff account restriction for retailteller.
Search String : DEFLT00015014 changes

Modified By : Madhu
Modified On : 12-Mar-2012
Modified Reason : Track Receivable enabling was failing for clearing
transactions.
Search String : DEFLT00015411 changes

Modified By : Devi Prasad


Modified On : 23-May-2012
Modified Reason : Staff account restrication
Search String : kernel staff restr retro

Modified By : Jayakeerthana
Modified On : 05-April-2012
Modified Reason : BRANCH ID DEFAULT
Search string : MBU47-FCUBS_11.2.0.4.0BOMLAE BranchID
Default(1401,1001)
? MBU47-FCUBS_11.2.0.4.0BOMLAE BranchID
Default(1013)

Modified By : Arun Jagannathan


Modified On : 10-Jul-2012
Search string : DEFLT00019681 changes

Changed By : Arun
Changed On : 19-Aug-2012
Change Description : tuning changes
Search String : UAT_UAE_064 changes
Modified On : 24-Aug-2012
Change Description : Assignment of source code
Search String : DEFLT00022407 changes

Changed By : Amit Bikram


Changed On : 20-SEP-2012
Description : When a cheque is returned in 1013 Screen system
should not update the denominations of the Till
Search string : DEFLT00023674 CHANGES

Changed By : Fazil
Changed On : 23-SEP-2012
Description : PT CHANGES
Search string : FAZIL PT CHANGES

Modified By : Suresh
Modified On : 28-Mar-2013
Search String : DEFLT00025289 changes

** Modified By : Suresh
** Modified On : 7-APR-2013
** Search String : DEFLT00025704 Changes

** Modified By : Suresh
** Modified On : 24-APR-2013
** Modified reason : Commented the above fix as per business confirmation
** Search String : DEFLT00026265 Changes

** Modified By : Arun
** Modified On : 09-Oct-2013
** Search String : AEDMSQFCC0976_1 Changes

Changed by: Ruchika Pachar


Changed on : 11-Sep-14
Change description: FCUBS_11.2.0.0.0_$BOMLAE_R16 Branch Requirements
Search string: FCUBS_11.2.0.0.0_$BOMLAE_R16 Branch Requirements changes

** Modified By : Mohan
** Modified On : 07-Dec-2014
** Search String : DEFLT00031687

Changed By : Chetan Hosur


Changed On : 31-Dec-2014
Description : FCUBS_11.2.0.0.0_$BOMLAE_R18 To populate additional
fields
and validations for FCYatBranch requirements
Search string : FCUBS_11.2.0.0.0_$BOMLAE_R18 FCYatBranch

Modified By : Chetan Hosur


Modified On : 3-Feb-2015
Modified Reason : ITR1 sfr 1 changes
Search String : FCUBS_11.2.0.0.0_$BOMLAE_R18 ITR1 SFR 1

Modified By :MOHAN
Modified on :12-fEB-2015
Modified Reason : Manual RT Track Creation adding 1007
Search String : Manual RT Track Creation Changes
Modified By :MOHAN
Modified on :03-MAR-2015
Modified Reason : FCUBS_11.2.0.0.0_$BOMLAE_R18 FCYatBranch
Search String : FCUBS_11.2.0.0.0_$BOMLAE_R18 FCYatBranch sanity testing

Defect ID : 3-10605742751
Modified By : Keerthi
Modified On : 18-Apr-2015
Search String : Post Golive changes <18-Apr-2015>

Modified By :MOHAN
Modified on :11-May-2015
Modified Reason : SD737680
Search String :SD737680

Modified By :Arun
Modified on :31-Aug-2015
Modified Reason : cash & cheque withdrawal should not be allowed for TD
accounts
Search String : PR0000606 - TD account changes
Changed By : Niraj Kayastha
Changed On : 10-jan -2015
Description : Virtual account change
Search string : FCUBS_11_2_WB_Virtual Accounts

Modified By : NIRAJ Kayastha


Modified On : 14-AUG-2015
Modified Reason : FCUBS_11_2 phase 2_Virtual Accounts
Search String : phase2 changes for invoice number

Modified By : Sangeetha
Modified On : 28-Oct-2015
Modified Reason : Wrong parameter passed.. Account number passed instead
of account name.. Not able to save 1006 screen
Search String : Defect 2703 changes

Modified By : Keerthi
Modified On : 26-Nov-2015
Modified Reason : system is not validating the waiver flag,if charge
Amount is 0.00
Search String : PR00000805

Modified By : Saravana
Modified On : 26-Nov-2015
Search String : Saravana 26-Nov-2015 changes For Cover Ac balance

Modified By : Mohan
Modified On : 21-Dec-2015
Modify Reason : 1006 screen after User modifying the rateson click on
recaluclate it trowing error
"settlement Pick up Failed".
Search String : Defect 3971

Modified By : Vijay Thota


Modified On : 06-JAN-2016
Modify Reason : Branch screens 1401, 1408 and 1006 was allowing the
transaction with transaction currency
and account currency are different when virtual account
was selected as credit account
even though the combination of virtual account and
currency did not exist.
Search String : Virtual Account Validation

Modified By : Om Sakthi Selvam


Modified On : 25-Nov-2015
Modified for : FCUBS_11 2 0 0 0$BOMLAE_R22_10332_T24, CR 10332_T24
Special deal utilisation
Search String : FCUBS_11 2 0 0 0$BOMLAE_R22_10332_T24

Modified by : Vishnu A L
Modified On : 11-Jan-2015
Modified Reason : BOMLAE_R22 Sub Account changes
Search String : BOMLAE_R22_Sub_Account

Modified by : Mohan
Modified On : 20-MAR-2016
Modified Reason : T24 Deal -currency should not be equiated with deal
currency
Search String :4894

Modified by : Gourab
Modified On : 24-MAR-2016
Modified Reason : utilisation posted in Negotiated deal should be in DEAL
CCY, optimization changes are also included
Search String : 4093

** MODIFIED BY : Keerthi
** MODIFIED ON : 04-Apr-2016
** MODIFIED REASON : Country code restricion for Negotiated Deal ref no
** SEARCH STRING : 5026

Modified by : Gourab
Modified On : 03-APR-2016
Modified Reason : Amount precision fix for 8206 and 8207 screens
Search String : 5034 changes

Modified By : Gourab
Modified On : 25-Jun-2016
Modified Reason : T24 Special Deal changes for Phase 2
Search String : T24 Special Deal Phase 2

Modified by : Kusuma Priya T N


Modified On : 18-Jul-2016
Modified Reason : BOMLAE_R23_Third party Cash withdrawal
Search String : Changes for Third party Cash withdrawal

Modified by : Gourab
Modified On : 04-Sep-2016
Modified Reason : Negotiated deals cannot be used in FX Purchase and FX
sale screen
Search String : Gourab@04sep2016 changes

Modified by : Gourab
Modified On : 06-Sep-2016
Modified Reason : 1408 Failing as system is not deriving the txn acc
Search String : Gourab@06sep2016 changes

Modified by : Gourab
Modified On : 24-Sep-2016
Modified Reason : When deal ccy is sell currency ofs amount is not
converted
Search String : PR00001872 changes Fix for FCAT Sell ccy = deal ccy

Modified by : Vijay Thota


Modified On : 23-OCT-2016
Modified Reason : Changes done in the function fn_validate_reversal_req so
as to display error message
during reversal such that same day reversal transactions
will be allowed
Search String : VA Enhancements Changes

Modified by : Vijay Thota


Modified On : 23-OCT-2016
Modified Reason : Virtual Account Changes
Search String : Virtual Account changes

Modified by : Raghavendra
Modified On : 02-Mar-2017
Modified Reason : BOMALE TCR Changes added 1402,CRCS functionid
Search String : BOMALE TCR Changes

Modified by : vrashin
Modified On : 28-Mar-2017
Modified Reason : BOMALE ITM Changes
Search String : BOMALE ITM Changes

Modified by : Vijay Thota


Modified On : 17-Apr-2017
Modified Reason : During Credit Card Payment from ITM4, settlement pickup
failed error was displayed
Search String : 2219

Modified by : Vijay Thota


Modified On : 25-Apr-2017
Modified Reason : Credit Card Payment using ITM4 screen from IFDITMTR
screen failed
Search String : 2420

Modified by : Arindam Bose


Modified On : 14-July-17
Modified Reason : Fix for defect 6453 (Velocity Issue- Passing global
variable to depks_rtl_teller_custom global variable G_CREDITCARD_NO)
Search String : 6453

Modified by : Alan James K


Modified by : 19-May-2017
Modified Reason : FCUBS_11.2.0.0.0$BOMLAE_Customer Choreography Financial
Transactions
Search string :
FCUBS_11.2.0.0.0$BOMLAE_Customer_Choreography_Financial_Transactions

Modified by : Aravind S
Modified by : 15-Jul-2017
Modified Reason : New fields in 1012 and 1013 screen
Search string : AN-FCUBS_11 2_0_0_0$BOMLAE_R29_13057_OnUs cheque posting

Modified by : Varaprasad G
Modified on : 18-Oct-2017
Modified Reason : For EIDA Scan
Search string : For EIDA Scan

Modified by : Jency Jose


Modified On : 20-Oct-2017
Modified Reason : RT_chags on same Fcy withdraw
Search String : RT_chags on same Fcy withdraw

Modified by : Bala
Modified On : 7-Nov-2017
Modified Reason : RT_chags on same Fcy withdraw
Search String : release 3A changes

Modified by : Arun
Modified On : 22-May-2018
Modified Reason : credita card number validation
Search String :PR00003698

Modified By : Jency Jose


Modified on : 26-MAR-2021
Modified Reason : BOMLAE_R45_17876 - TraderPro VAT
Search String : 17876 - TraderPro VAT Changes

-----------------------------------------------------------------------------------
--*/

IS
TYPE TYP_STTB_ACC_REC IS RECORD(
TY_STTB_ACCOUNT STTBS_ACCOUNT%ROWTYPE);
TYPE TYP_TBL_STTB_ACCOUNT IS TABLE OF TYP_STTB_ACC_REC INDEX BY VARCHAR2(23); --
size depends on len(branch_code) + len(acc_no)
TBL_STTB_ACCOUNT TYP_TBL_STTB_ACCOUNT;
PKG_ARC_ROW IFTMS_ARC_MAINT%ROWTYPE; --FCUBS 10.1 Switch Interface Tuning
Changes starts
PKG_STTB_ACCOUNT STTBS_ACCOUNT%ROWTYPE; --9NT1428- FCUBS 11.2 Customer Group
CHANGES
------------------------------------------------------

--FC11.0 SFR 1291


L_RT_LEND_FLAG DETM_RT_PREFERENCES.RETAIL_LENDING_PRODUCT%TYPE;

PROCEDURE DBG(P_DBG IN VARCHAR2) IS


BEGIN
DEBUG.PR_DEBUG('IF', 'Depks_RetailTellerUpload :' || P_DBG);
END DBG;
PROCEDURE DBG(P_DBG_IND IN VARCHAR2, P_DBG IN VARCHAR2) IS
BEGIN
IF P_DBG_IND = 'E' THEN
DEBUG.PR_DEBUG('DE',
'[error] ' || 'Depks_RetailTellerUpload :' || P_DBG);
ELSIF P_DBG_IND = 'O' THEN
DEBUG.PR_DEBUG('DE',
'[override] ' || 'Depks_RetailTellerUpload :' || P_DBG);
ELSE
DEBUG.PR_DEBUG('DE',
'[debug] ' || 'Depks_RetailTellerUpload :' || P_DBG);
END IF;
END DBG;

--------------------------------------------------------------
FUNCTION FN_IS_AN_ERROR_RAISED(P_RET IN OUT NUMBER) RETURN BOOLEAN IS
L_ERR_TYPE ERTB_MSGS.TYPE%TYPE;
BEGIN
DBG('Inside fn_is_an_error_raised.. ');
-------------
FOR I IN 1 .. OVPKSS.GL_TBLERROR.COUNT LOOP
L_ERR_TYPE := OVPKSS.FN_GETTYPE(OVPKSS.GL_TBLERROR(I).ERR_CODE);
IF L_ERR_TYPE IN ('E', 'X') THEN
DBG('E', 'Error Found... ' || OVPKSS.GL_TBLERROR(I).ERR_CODE);
P_RET := -1;
RETURN TRUE;
END IF;
END LOOP;
-------------
DBG('finished fn_is_an_error_raised...returning false..');
RETURN FALSE;
EXCEPTION
WHEN OTHERS THEN
DBG('E',
'Unexpected error in fn_is_an_error_raised with SQLERRM :' ||
SQLERRM);
P_RET := -1;
RETURN FALSE;
END FN_IS_AN_ERROR_RAISED;
--------------------------------------------------------------
--FCUBS10.0LOT3 Flexbranch Integration added this funcvtion

FUNCTION FN_COPY_UPLOAD_TO_BASE(P_TY_RETAILTLR_UPD IN DETB_UPLOAD_RTL_TELLER


%ROWTYPE,
P_TY_MSGDETS_UPD IN CSTB_UPLOAD_ARC_SETTLE
%ROWTYPE,
P_TY_MCKDETAILS_UPD IN ISTB_UPLOAD_CONTRACTIS
%ROWTYPE,
P_TY_RETAIL_TELLER OUT DETB_RTL_TELLER%ROWTYPE,
--P_TY_RETAIL_TLR_CUST OUT
DETB_RTL_TELLER_CUSTOM%ROWTYPE, --
FCUBS_11.2.0.0.0$BOMLAE_Customer_Choreography_Financial_Transactions start
P_TY_MSG_DETS OUT CSTB_ARC_SETTLE%ROWTYPE,
P_TY_MCKDETAILS OUT ISVW_MCK_DETAILS%ROWTYPE,
P_ERR_CODE IN OUT VARCHAR2,
P_ERR_PARAM IN OUT VARCHAR2)
RETURN BOOLEAN IS
L_CC_NO DEPKS_RTL_TELLER_CUSTOM.G_CREDITCARD_NO%type; -- 6453 -Variable Added
BEGIN
DBG('in fn_copy_upload_to_base');
DBG('p_ty_retailtlr_upd.txn_acc' || P_TY_RETAILTLR_UPD.TXN_ACC);
DBG('p_ty_retailtlr_upd.offset' || P_TY_RETAILTLR_UPD.OFS_ACC);
DBG('txn sub acc' || G_FRM_SUBACCNO);
DBG('offset sub acc ' || G_TO_SUBACCNO);
P_TY_RETAIL_TELLER.XREF := P_TY_RETAILTLR_UPD.XREF;
P_TY_RETAIL_TELLER.PRODUCT_CODE := P_TY_RETAILTLR_UPD.PRODUCT_CODE;
P_TY_RETAIL_TELLER.BRANCH_CODE := P_TY_RETAILTLR_UPD.BRANCH_CODE;
P_TY_RETAIL_TELLER.TRN_REF_NO := P_TY_RETAILTLR_UPD.TRN_REF_NO;
P_TY_RETAIL_TELLER.TXN_ACC := P_TY_RETAILTLR_UPD.TXN_ACC;
P_TY_RETAIL_TELLER.TXN_CCY := P_TY_RETAILTLR_UPD.TXN_CCY;
P_TY_RETAIL_TELLER.TXN_AMOUNT := P_TY_RETAILTLR_UPD.TXN_AMOUNT;
P_TY_RETAIL_TELLER.TXN_BRANCH := P_TY_RETAILTLR_UPD.TXN_BRANCH;
P_TY_RETAIL_TELLER.TXN_TRN_CODE := P_TY_RETAILTLR_UPD.TXN_TRN_CODE;
P_TY_RETAIL_TELLER.OFS_ACC := P_TY_RETAILTLR_UPD.OFS_ACC;
P_TY_RETAIL_TELLER.OFS_CCY := P_TY_RETAILTLR_UPD.OFS_CCY;
P_TY_RETAIL_TELLER.OFS_AMOUNT := P_TY_RETAILTLR_UPD.OFS_AMOUNT;
P_TY_RETAIL_TELLER.OFS_BRANCH := P_TY_RETAILTLR_UPD.OFS_BRANCH;
P_TY_RETAIL_TELLER.OFS_TRN_CODE := P_TY_RETAILTLR_UPD.OFS_TRN_CODE;
P_TY_RETAIL_TELLER.EXCH_RATE := P_TY_RETAILTLR_UPD.EXCH_RATE;
P_TY_RETAIL_TELLER.LCY_AMOUNT := P_TY_RETAILTLR_UPD.LCY_AMOUNT;
P_TY_RETAIL_TELLER.TRN_DT := P_TY_RETAILTLR_UPD.TRN_DT;
P_TY_RETAIL_TELLER.VALUE_DT := P_TY_RETAILTLR_UPD.VALUE_DT;
P_TY_RETAIL_TELLER.DR_INSTRUMENT_CODE := P_TY_RETAILTLR_UPD.DR_INSTRUMENT_CODE;
P_TY_RETAIL_TELLER.CR_INSTRUMENT_CODE := P_TY_RETAILTLR_UPD.CR_INSTRUMENT_CODE;
P_TY_RETAIL_TELLER.REL_CUSTOMER := P_TY_RETAILTLR_UPD.REL_CUSTOMER;
P_TY_RETAIL_TELLER.CHARGE_ACCOUNT := P_TY_RETAILTLR_UPD.CHARGE_ACCOUNT;
P_TY_RETAIL_TELLER.CHG_GL := P_TY_RETAILTLR_UPD.CHG_GL;
P_TY_RETAIL_TELLER.CHG_CCY := P_TY_RETAILTLR_UPD.CHG_CCY;
P_TY_RETAIL_TELLER.CHG_AMT := P_TY_RETAILTLR_UPD.CHG_AMT;
P_TY_RETAIL_TELLER.CHG_IN_ACY := P_TY_RETAILTLR_UPD.CHG_IN_ACY;
P_TY_RETAIL_TELLER.CHG_IN_LCY := P_TY_RETAILTLR_UPD.CHG_IN_LCY;
P_TY_RETAIL_TELLER.CHG_CCY_ACY_RATE := P_TY_RETAILTLR_UPD.CHG_CCY_ACY_RATE;
P_TY_RETAIL_TELLER.ACY_LCY_RATE := P_TY_RETAILTLR_UPD.ACY_LCY_RATE;
P_TY_RETAIL_TELLER.NETTING_IND := P_TY_RETAILTLR_UPD.NETTING_IND;
P_TY_RETAIL_TELLER.TXN_CODE := P_TY_RETAILTLR_UPD.TXN_CODE;
P_TY_RETAIL_TELLER.MIS_HEAD_1 := P_TY_RETAILTLR_UPD.MIS_HEAD_1;
P_TY_RETAIL_TELLER.CHG_GL_1 := P_TY_RETAILTLR_UPD.CHG_GL_1;
P_TY_RETAIL_TELLER.CHG_CCY_1 := P_TY_RETAILTLR_UPD.CHG_CCY_1;
P_TY_RETAIL_TELLER.CHG_AMT_1 := P_TY_RETAILTLR_UPD.CHG_AMT_1;
P_TY_RETAIL_TELLER.CHG_IN_ACY_1 := P_TY_RETAILTLR_UPD.CHG_IN_ACY_1;
P_TY_RETAIL_TELLER.CHG_IN_LCY_1 := P_TY_RETAILTLR_UPD.CHG_IN_LCY_1;
P_TY_RETAIL_TELLER.CHG_CCY_ACY_RATE_1 := P_TY_RETAILTLR_UPD.CHG_CCY_ACY_RATE_1;
P_TY_RETAIL_TELLER.ACY_LCY_RATE_1 := P_TY_RETAILTLR_UPD.ACY_LCY_RATE_1;
P_TY_RETAIL_TELLER.NETTING_IND_1 := P_TY_RETAILTLR_UPD.NETTING_IND_1;
P_TY_RETAIL_TELLER.TXN_CODE_1 := P_TY_RETAILTLR_UPD.TXN_CODE_1;
P_TY_RETAIL_TELLER.MIS_HEAD_2 := P_TY_RETAILTLR_UPD.MIS_HEAD_2;
P_TY_RETAIL_TELLER.CHG_GL_2 := P_TY_RETAILTLR_UPD.CHG_GL_2;
P_TY_RETAIL_TELLER.CHG_CCY_2 := P_TY_RETAILTLR_UPD.CHG_CCY_2;
P_TY_RETAIL_TELLER.CHG_AMT_2 := P_TY_RETAILTLR_UPD.CHG_AMT_2;
P_TY_RETAIL_TELLER.CHG_IN_ACY_2 := P_TY_RETAILTLR_UPD.CHG_IN_ACY_2;
P_TY_RETAIL_TELLER.CHG_IN_LCY_2 := P_TY_RETAILTLR_UPD.CHG_IN_LCY_2;
P_TY_RETAIL_TELLER.CHG_CCY_ACY_RATE_2 := P_TY_RETAILTLR_UPD.CHG_CCY_ACY_RATE_2;
P_TY_RETAIL_TELLER.ACY_LCY_RATE_2 := P_TY_RETAILTLR_UPD.ACY_LCY_RATE_2;
P_TY_RETAIL_TELLER.NETTING_IND_2 := P_TY_RETAILTLR_UPD.NETTING_IND_2;
P_TY_RETAIL_TELLER.TXN_CODE_2 := P_TY_RETAILTLR_UPD.TXN_CODE_2;
P_TY_RETAIL_TELLER.MIS_HEAD_3 := P_TY_RETAILTLR_UPD.MIS_HEAD_3;
P_TY_RETAIL_TELLER.CHG_GL_3 := P_TY_RETAILTLR_UPD.CHG_GL_3;
P_TY_RETAIL_TELLER.CHG_CCY_3 := P_TY_RETAILTLR_UPD.CHG_CCY_3;
P_TY_RETAIL_TELLER.CHG_AMT_3 := P_TY_RETAILTLR_UPD.CHG_AMT_3;
P_TY_RETAIL_TELLER.CHG_IN_ACY_3 := P_TY_RETAILTLR_UPD.CHG_IN_ACY_3;
P_TY_RETAIL_TELLER.CHG_IN_LCY_3 := P_TY_RETAILTLR_UPD.CHG_IN_LCY_3;
P_TY_RETAIL_TELLER.CHG_CCY_ACY_RATE_3 := P_TY_RETAILTLR_UPD.CHG_CCY_ACY_RATE_3;
P_TY_RETAIL_TELLER.ACY_LCY_RATE_3 := P_TY_RETAILTLR_UPD.ACY_LCY_RATE_3;
P_TY_RETAIL_TELLER.NETTING_IND_3 := P_TY_RETAILTLR_UPD.NETTING_IND_3;
P_TY_RETAIL_TELLER.TXN_CODE_3 := P_TY_RETAILTLR_UPD.TXN_CODE_3;
P_TY_RETAIL_TELLER.MIS_HEAD_4 := P_TY_RETAILTLR_UPD.MIS_HEAD_4;
P_TY_RETAIL_TELLER.CHG_GL_4 := P_TY_RETAILTLR_UPD.CHG_GL_4;
P_TY_RETAIL_TELLER.CHG_CCY_4 := P_TY_RETAILTLR_UPD.CHG_CCY_4;
P_TY_RETAIL_TELLER.CHG_AMT_4 := P_TY_RETAILTLR_UPD.CHG_AMT_4;
P_TY_RETAIL_TELLER.CHG_IN_ACY_4 := P_TY_RETAILTLR_UPD.CHG_IN_ACY_4;
P_TY_RETAIL_TELLER.CHG_IN_LCY_4 := P_TY_RETAILTLR_UPD.CHG_IN_LCY_4;
P_TY_RETAIL_TELLER.CHG_CCY_ACY_RATE_4 := P_TY_RETAILTLR_UPD.CHG_CCY_ACY_RATE_4;
P_TY_RETAIL_TELLER.ACY_LCY_RATE_4 := P_TY_RETAILTLR_UPD.ACY_LCY_RATE_4;
P_TY_RETAIL_TELLER.NETTING_IND_4 := P_TY_RETAILTLR_UPD.NETTING_IND_4;
P_TY_RETAIL_TELLER.TXN_CODE_4 := P_TY_RETAILTLR_UPD.TXN_CODE_4;
P_TY_RETAIL_TELLER.MIS_HEAD_5 := P_TY_RETAILTLR_UPD.MIS_HEAD_5;
P_TY_RETAIL_TELLER.REM_ACC := P_TY_RETAILTLR_UPD.REM_ACC;
P_TY_RETAIL_TELLER.REM_BANK := P_TY_RETAILTLR_UPD.REM_BANK;
P_TY_RETAIL_TELLER.REM_BRANCH := P_TY_RETAILTLR_UPD.REM_BRANCH;
P_TY_RETAIL_TELLER.ROUTING_NO := P_TY_RETAILTLR_UPD.ROUTING_NO;
P_TY_RETAIL_TELLER.END_POINT := P_TY_RETAILTLR_UPD.END_POINT;
P_TY_RETAIL_TELLER.SERIAL_NO := P_TY_RETAILTLR_UPD.SERIAL_NO;
P_TY_RETAIL_TELLER.RECORD_STAT := P_TY_RETAILTLR_UPD.RECORD_STAT;
P_TY_RETAIL_TELLER.AUTH_STAT := P_TY_RETAILTLR_UPD.AUTH_STAT;
P_TY_RETAIL_TELLER.MAKER_ID := P_TY_RETAILTLR_UPD.MAKER_ID;
P_TY_RETAIL_TELLER.MAKER_DT_STAMP := P_TY_RETAILTLR_UPD.MAKER_DT_STAMP;
P_TY_RETAIL_TELLER.CHECKER_ID := P_TY_RETAILTLR_UPD.CHECKER_ID;
P_TY_RETAIL_TELLER.CHECKER_DT_STAMP := P_TY_RETAILTLR_UPD.CHECKER_DT_STAMP;
P_TY_RETAIL_TELLER.REPAIR_REASON := P_TY_RETAILTLR_UPD.REPAIR_REASON;
P_TY_RETAIL_TELLER.MOD_NO := P_TY_RETAILTLR_UPD.MOD_NO;
P_TY_RETAIL_TELLER.SCODE := P_TY_RETAILTLR_UPD.SCODE;
P_TY_RETAIL_TELLER.MIS_HEAD := P_TY_RETAILTLR_UPD.MIS_HEAD;
P_TY_RETAIL_TELLER.NARRATIVE := P_TY_RETAILTLR_UPD.NARRATIVE;
P_TY_RETAIL_TELLER.DR_ACC := P_TY_RETAILTLR_UPD.DR_ACC;
P_TY_RETAIL_TELLER.MODULE := P_TY_RETAILTLR_UPD.MODULE;
P_TY_RETAIL_TELLER.ESN := P_TY_RETAILTLR_UPD.ESN;
P_TY_RETAIL_TELLER.EVENT_CODE := P_TY_RETAILTLR_UPD.EVENT_CODE;
P_TY_RETAIL_TELLER.ROUTE_CODE := P_TY_RETAILTLR_UPD.ROUTE_CODE;
P_TY_RETAIL_TELLER.FT_PROBLEM := P_TY_RETAILTLR_UPD.FT_PROBLEM;
P_TY_RETAIL_TELLER.TRACK_RECEIVABLE := P_TY_RETAILTLR_UPD.TRACK_RECEIVABLE;
P_TY_RETAIL_TELLER.TIME_RECEIVED := P_TY_RETAILTLR_UPD.TIME_RECEIVED;
P_TY_RETAIL_TELLER.THEIR_CHGS2 := P_TY_RETAILTLR_UPD.THEIR_CHGS2;
P_TY_RETAIL_TELLER.THEIR_CHGS3 := P_TY_RETAILTLR_UPD.THEIR_CHGS3;
P_TY_RETAIL_TELLER.THEIR_CHGS4 := P_TY_RETAILTLR_UPD.THEIR_CHGS4;
P_TY_RETAIL_TELLER.THEIR_CHGS := P_TY_RETAILTLR_UPD.THEIR_CHGS;
P_TY_RETAIL_TELLER.THEIR_CHGS1 := P_TY_RETAILTLR_UPD.THEIR_CHGS1;
P_TY_RETAIL_TELLER.THEIR_ACC := P_TY_RETAILTLR_UPD.THEIR_ACC;
P_TY_RETAIL_TELLER.THEIR_ACC1 := P_TY_RETAILTLR_UPD.THEIR_ACC1;
P_TY_RETAIL_TELLER.THEIR_ACC2 := P_TY_RETAILTLR_UPD.THEIR_ACC2;
P_TY_RETAIL_TELLER.THEIR_ACC3 := P_TY_RETAILTLR_UPD.THEIR_ACC3;
P_TY_RETAIL_TELLER.THEIR_ACC4 := P_TY_RETAILTLR_UPD.THEIR_ACC4;
P_TY_RETAIL_TELLER.LCY_EXCH_RATE := P_TY_RETAILTLR_UPD.LCY_EXCH_RATE;
P_TY_RETAIL_TELLER.TOT_CHG_IN_TCY := P_TY_RETAILTLR_UPD.TOT_CHG_IN_TCY;
P_TY_RETAIL_TELLER.CHG_DESC := P_TY_RETAILTLR_UPD.CHG_DESC;
P_TY_RETAIL_TELLER.CHG_DESC1 := P_TY_RETAILTLR_UPD.CHG_DESC1;
P_TY_RETAIL_TELLER.CHG_DESC2 := P_TY_RETAILTLR_UPD.CHG_DESC2;
P_TY_RETAIL_TELLER.CHG_DESC3 := P_TY_RETAILTLR_UPD.CHG_DESC3;
P_TY_RETAIL_TELLER.CHG_DESC4 := P_TY_RETAILTLR_UPD.CHG_DESC4;
P_TY_RETAIL_TELLER.CHG_TYPE := P_TY_RETAILTLR_UPD.CHG_TYPE;
P_TY_RETAIL_TELLER.CHG_TYPE1 := P_TY_RETAILTLR_UPD.CHG_TYPE1;
P_TY_RETAIL_TELLER.CHG_TYPE2 := P_TY_RETAILTLR_UPD.CHG_TYPE2;
P_TY_RETAIL_TELLER.CHG_TYPE3 := P_TY_RETAILTLR_UPD.CHG_TYPE3;
P_TY_RETAIL_TELLER.CHG_TYPE4 := P_TY_RETAILTLR_UPD.CHG_TYPE4;
P_TY_RETAIL_TELLER.WAIVER := P_TY_RETAILTLR_UPD.WAIVER;
P_TY_RETAIL_TELLER.WAIVER1 := P_TY_RETAILTLR_UPD.WAIVER1;
P_TY_RETAIL_TELLER.WAIVER2 := P_TY_RETAILTLR_UPD.WAIVER2;
P_TY_RETAIL_TELLER.WAIVER3 := P_TY_RETAILTLR_UPD.WAIVER3;
P_TY_RETAIL_TELLER.WAIVER4 := P_TY_RETAILTLR_UPD.WAIVER4;
P_TY_RETAIL_TELLER.LCY_CHG_EXCH_RATE := P_TY_RETAILTLR_UPD.LCY_CHG_EXCH_RATE;
P_TY_RETAIL_TELLER.LCY_CHG_EXCH_RATE1 := P_TY_RETAILTLR_UPD.LCY_CHG_EXCH_RATE1;
P_TY_RETAIL_TELLER.LCY_CHG_EXCH_RATE2 := P_TY_RETAILTLR_UPD.LCY_CHG_EXCH_RATE2;
P_TY_RETAIL_TELLER.LCY_CHG_EXCH_RATE3 := P_TY_RETAILTLR_UPD.LCY_CHG_EXCH_RATE3;
P_TY_RETAIL_TELLER.LCY_CHG_EXCH_RATE4 := P_TY_RETAILTLR_UPD.LCY_CHG_EXCH_RATE4;
P_TY_RETAIL_TELLER.REJECT_CODE := P_TY_RETAILTLR_UPD.REJECT_CODE; --
FCUBS11.2 ITR1 SFR#504 Reject code changes
P_TY_RETAIL_TELLER.CHEQUE_ISSUE_DATE := P_TY_RETAILTLR_UPD.CHEQUE_ISSUE_DATE;
---FCUBS11.2 ITR1 SFR1299

--FCUBS 10.1 Switch Interface Changes starts


P_TY_RETAIL_TELLER.CASHBACK_AMOUNT := P_TY_RETAILTLR_UPD.CASHBACK_AMOUNT;
P_TY_RETAIL_TELLER.SERVICE_PROVIDER := P_TY_RETAILTLR_UPD.SERVICE_PROVIDER;
P_TY_RETAIL_TELLER.BILL_NUMBER := P_TY_RETAILTLR_UPD.BILL_NUMBER;
P_TY_RETAIL_TELLER.BILL_ISSUE_DATE := P_TY_RETAILTLR_UPD.BILL_ISSUE_DATE;
P_TY_RETAIL_TELLER.CONSUMER_NO := P_TY_RETAILTLR_UPD.CONSUMER_NO;
--FCUBS 10.1 Switch Interface Changes starts
-- FC103ITR2 SFR-202 Starts
P_TY_RETAIL_TELLER.BENEF_NAME := P_TY_RETAILTLR_UPD.BENEF_NAME;
P_TY_RETAIL_TELLER.BENEF_ADDR1 := P_TY_RETAILTLR_UPD.BENEF_ADDR1;
P_TY_RETAIL_TELLER.BENEF_ADDR2 := P_TY_RETAILTLR_UPD.BENEF_ADDR2;
P_TY_RETAIL_TELLER.BENEF_ADDR3 := P_TY_RETAILTLR_UPD.BENEF_ADDR3;

DBG('RETAILTLR-UPDs BENEF_ADDR4 = ' || P_TY_RETAILTLR_UPD.BENEF_ADDR4); --6453


--Debug added

P_TY_RETAIL_TELLER.BENEF_ADDR4 := P_TY_RETAILTLR_UPD.BENEF_ADDR4;

DBG('RETAIL TELLERs BENEF_ADDR4 = ' || P_TY_RETAIL_TELLER.BENEF_ADDR4); --6453


--Debug Added

-- 6453 Changes Starts AB


DEPKS_RTL_TELLER_CUSTOM.G_CREDITCARD_NO := P_TY_RETAIL_TELLER.BENEF_ADDR4; --
Assigning Global Variable 6453
DBG('Assigned RETAIL TELLERs BENEF_ADDR4 as Global Variable - CC No = ' ||
DEPKS_RTL_TELLER_CUSTOM.G_CREDITCARD_NO);
-- 6453 Changes Ends AB

P_TY_RETAIL_TELLER.PASSPORTIC_NO := P_TY_RETAILTLR_UPD.PASSPORTIC_NO;
DBG('passport info: ' || P_TY_RETAIL_TELLER.PASSPORTIC_NO);
--- FC103ITR2 SFR-202 Ends
P_TY_RETAIL_TELLER.INSTR_DATE := P_TY_RETAILTLR_UPD.INSTR_DATE; --fcubs 10.5
SFR 3786 changes

P_TY_RETAIL_TELLER.NEGOTIATED_RATE := P_TY_RETAILTLR_UPD.NEGOTIATED_RATE; --
FCUBS11.1 ITR1 SFR-3669
P_TY_RETAIL_TELLER.NEGOTIATION_REF_NO := P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO;
-- FCUBS11.1 ITR1 SFR-3669
----9NT1428- FCUBS 11.2 CHANGES by Surendra Startz
DBG('p_ty_retailtlr_upd.Project_Name -->' ||
P_TY_RETAILTLR_UPD.PROJECT_NAME);
P_TY_RETAIL_TELLER.PROJECT_NAME := P_TY_RETAILTLR_UPD.PROJECT_NAME;
P_TY_RETAIL_TELLER.UNIT_PAYMENT := P_TY_RETAILTLR_UPD.UNIT_PAYMENT;
P_TY_RETAIL_TELLER.DEPOSIT_SLIP_NO := P_TY_RETAILTLR_UPD.DEPOSIT_SLIP_NO;
P_TY_RETAIL_TELLER.UNIT_ID := P_TY_RETAILTLR_UPD.UNIT_ID;
DBG('p_ty_retailtlr_upd.Deposit_Slip_No-->' ||
P_TY_RETAILTLR_UPD.DEPOSIT_SLIP_NO);
-----9NT1428- FCUBS 11.2 CHANGES by Surendra Endz
DBG('assigning msgdets');
DBG('g_viraccno::' || G_VIRACCNO);
P_TY_MSG_DETS.RCVR_CORRESP3 := P_TY_MSGDETS_UPD.RCVR_CORRESP3;
P_TY_MSG_DETS.RCVR_CORRESP4 := P_TY_MSGDETS_UPD.RCVR_CORRESP4;
P_TY_MSG_DETS.RCVR_CORRESP5 := P_TY_MSGDETS_UPD.RCVR_CORRESP5;
P_TY_MSG_DETS.ORDERING_INSTITUTION1 := P_TY_MSGDETS_UPD.ORDERING_INSTITUTION1;
P_TY_MSG_DETS.ORDERING_INSTITUTION2 := P_TY_MSGDETS_UPD.ORDERING_INSTITUTION2;
P_TY_MSG_DETS.ORDERING_INSTITUTION3 := P_TY_MSGDETS_UPD.ORDERING_INSTITUTION3;
P_TY_MSG_DETS.ORDERING_INSTITUTION4 := P_TY_MSGDETS_UPD.ORDERING_INSTITUTION4;
P_TY_MSG_DETS.ORDERING_INSTITUTION5 := P_TY_MSGDETS_UPD.ORDERING_INSTITUTION5;
P_TY_MSG_DETS.RCVR_CORRESP2 := P_TY_MSGDETS_UPD.RCVR_CORRESP2;
P_TY_MSG_DETS.XREF := P_TY_MSGDETS_UPD.XREF;
P_TY_MSG_DETS.ROUTE_CODE := P_TY_MSGDETS_UPD.ROUTE_CODE;
P_TY_MSG_DETS.ORDERING_CUSTOMER1 := P_TY_MSGDETS_UPD.ORDERING_CUSTOMER1;
P_TY_MSG_DETS.ORDERING_CUSTOMER2 := P_TY_MSGDETS_UPD.ORDERING_CUSTOMER2;
P_TY_MSG_DETS.ORDERING_CUSTOMER3 := P_TY_MSGDETS_UPD.ORDERING_CUSTOMER3;
P_TY_MSG_DETS.ORDERING_CUSTOMER4 := P_TY_MSGDETS_UPD.ORDERING_CUSTOMER4;
P_TY_MSG_DETS.ORDERING_CUSTOMER5 := P_TY_MSGDETS_UPD.ORDERING_CUSTOMER5;
P_TY_MSG_DETS.PAYMENT_DETAILS1 := P_TY_MSGDETS_UPD.PAYMENT_DETAILS1;
P_TY_MSG_DETS.PAYMENT_DETAILS2 := P_TY_MSGDETS_UPD.PAYMENT_DETAILS2;
P_TY_MSG_DETS.PAYMENT_DETAILS3 := P_TY_MSGDETS_UPD.PAYMENT_DETAILS3;
P_TY_MSG_DETS.PAYMENT_DETAILS4 := P_TY_MSGDETS_UPD.PAYMENT_DETAILS4;
P_TY_MSG_DETS.ACC_WITH_INSTN1 := P_TY_MSGDETS_UPD.ACC_WITH_INSTN1;
P_TY_MSG_DETS.ACC_WITH_INSTN2 := P_TY_MSGDETS_UPD.ACC_WITH_INSTN2;
P_TY_MSG_DETS.ACC_WITH_INSTN3 := P_TY_MSGDETS_UPD.ACC_WITH_INSTN3;
P_TY_MSG_DETS.ACC_WITH_INSTN4 := P_TY_MSGDETS_UPD.ACC_WITH_INSTN4;
P_TY_MSG_DETS.ACC_WITH_INSTN5 := P_TY_MSGDETS_UPD.ACC_WITH_INSTN5;
P_TY_MSG_DETS.INTERMEDIARY1 := P_TY_MSGDETS_UPD.INTERMEDIARY1;
P_TY_MSG_DETS.INTERMEDIARY2 := P_TY_MSGDETS_UPD.INTERMEDIARY2;
P_TY_MSG_DETS.INTERMEDIARY3 := P_TY_MSGDETS_UPD.INTERMEDIARY3;
P_TY_MSG_DETS.INTERMEDIARY4 := P_TY_MSGDETS_UPD.INTERMEDIARY4;
P_TY_MSG_DETS.INTERMEDIARY5 := P_TY_MSGDETS_UPD.INTERMEDIARY5;
P_TY_MSG_DETS.SNDR_TO_RCVR_INFO1 := P_TY_MSGDETS_UPD.SNDR_TO_RCVR_INFO1;
P_TY_MSG_DETS.SNDR_TO_RCVR_INFO2 := P_TY_MSGDETS_UPD.SNDR_TO_RCVR_INFO2;
P_TY_MSG_DETS.SNDR_TO_RCVR_INFO3 := P_TY_MSGDETS_UPD.SNDR_TO_RCVR_INFO3;
P_TY_MSG_DETS.SNDR_TO_RCVR_INFO4 := P_TY_MSGDETS_UPD.SNDR_TO_RCVR_INFO4;
P_TY_MSG_DETS.SNDR_TO_RCVR_INFO5 := P_TY_MSGDETS_UPD.SNDR_TO_RCVR_INFO5;
P_TY_MSG_DETS.SNDR_TO_RCVR_INFO6 := P_TY_MSGDETS_UPD.SNDR_TO_RCVR_INFO6;
P_TY_MSG_DETS.RCVR_CORRESP1 := P_TY_MSGDETS_UPD.RCVR_CORRESP1;
P_TY_MSG_DETS.BENEF_INSTITUTION1 := P_TY_MSGDETS_UPD.BENEF_INSTITUTION1;
P_TY_MSG_DETS.BENEF_INSTITUTION2 := P_TY_MSGDETS_UPD.BENEF_INSTITUTION2;
P_TY_MSG_DETS.BENEF_INSTITUTION3 := P_TY_MSGDETS_UPD.BENEF_INSTITUTION3;
P_TY_MSG_DETS.BENEF_INSTITUTION4 := P_TY_MSGDETS_UPD.BENEF_INSTITUTION4;
P_TY_MSG_DETS.BENEF_INSTITUTION5 := P_TY_MSGDETS_UPD.BENEF_INSTITUTION5;
P_TY_MSG_DETS.ULT_BENEFICIARY1 := P_TY_MSGDETS_UPD.ULT_BENEFICIARY1;
P_TY_MSG_DETS.ULT_BENEFICIARY2 := P_TY_MSGDETS_UPD.ULT_BENEFICIARY2;
P_TY_MSG_DETS.ULT_BENEFICIARY3 := P_TY_MSGDETS_UPD.ULT_BENEFICIARY3;
P_TY_MSG_DETS.ULT_BENEFICIARY4 := P_TY_MSGDETS_UPD.ULT_BENEFICIARY4;
P_TY_MSG_DETS.ULT_BENEFICIARY5 := P_TY_MSGDETS_UPD.ULT_BENEFICIARY5;
P_TY_MSG_DETS.INT_REIM_INST1 := P_TY_MSGDETS_UPD.INT_REIM_INST1;
P_TY_MSG_DETS.INT_REIM_INST2 := P_TY_MSGDETS_UPD.INT_REIM_INST2;
P_TY_MSG_DETS.INT_REIM_INST3 := P_TY_MSGDETS_UPD.INT_REIM_INST3;
P_TY_MSG_DETS.INT_REIM_INST4 := P_TY_MSGDETS_UPD.INT_REIM_INST4;
P_TY_MSG_DETS.INT_REIM_INST5 := P_TY_MSGDETS_UPD.INT_REIM_INST5;
P_TY_MSG_DETS.ERI_CCY := P_TY_MSGDETS_UPD.ERI_CCY;
P_TY_MSG_DETS.ERI_AMOUNT := P_TY_MSGDETS_UPD.ERI_AMOUNT;
P_TY_MSG_DETS.MSG_TYPE := P_TY_MSGDETS_UPD.MSG_TYPE;
P_TY_MSG_DETS.PAY_RECEIVE := P_TY_MSGDETS_UPD.PAY_RECEIVE;
P_TY_MSG_DETS.COUNTERPARTY := P_TY_MSGDETS_UPD.COUNTERPARTY;
P_TY_MSG_DETS.INSTRUMENT_TYPE := P_TY_MSGDETS_UPD.INSTRUMENT_TYPE;
P_TY_MSG_DETS.INSTRUMENT_NO := P_TY_MSGDETS_UPD.INSTRUMENT_NO;
P_TY_MSG_DETS.CHARGES_DETAILS := P_TY_MSGDETS_UPD.CHARGES_DETAILS;
P_TY_MSG_DETS.OUR_CORRESPONDENT := P_TY_MSGDETS_UPD.OUR_CORRESPONDENT;
P_TY_MSG_DETS.BENEF_INST1_FOR_COVER := P_TY_MSGDETS_UPD.BENEF_INST1_FOR_COVER;
P_TY_MSG_DETS.BENEF_INST2_FOR_COVER := P_TY_MSGDETS_UPD.BENEF_INST2_FOR_COVER;
P_TY_MSG_DETS.BENEF_INST3_FOR_COVER := P_TY_MSGDETS_UPD.BENEF_INST3_FOR_COVER;
P_TY_MSG_DETS.BENEF_INST4_FOR_COVER := P_TY_MSGDETS_UPD.BENEF_INST4_FOR_COVER;
P_TY_MSG_DETS.BENEF_INST5_FOR_COVER := P_TY_MSGDETS_UPD.BENEF_INST5_FOR_COVER;
P_TY_MSG_DETS.RECV_INTERMEDIARY1 := P_TY_MSGDETS_UPD.RECV_INTERMEDIARY1;
P_TY_MSG_DETS.RECV_INTERMEDIARY2 := P_TY_MSGDETS_UPD.RECV_INTERMEDIARY2;
P_TY_MSG_DETS.RECV_INTERMEDIARY3 := P_TY_MSGDETS_UPD.RECV_INTERMEDIARY3;
P_TY_MSG_DETS.RECV_INTERMEDIARY4 := P_TY_MSGDETS_UPD.RECV_INTERMEDIARY4;
P_TY_MSG_DETS.RECV_INTERMEDIARY5 := P_TY_MSGDETS_UPD.RECV_INTERMEDIARY5;
P_TY_MSG_DETS.RECEIVER := P_TY_MSGDETS_UPD.RECEIVER;
P_TY_MSG_DETS.ROUTE_DESC := P_TY_MSGDETS_UPD.ROUTE_DESC;
P_TY_MSG_DETS.COVER_REQUIRED := P_TY_MSGDETS_UPD.COVER_REQUIRED;
P_TY_MSG_DETS.PAYMENT_BY := P_TY_MSGDETS_UPD.PAYMENT_BY;
P_TY_MSG_DETS.TRANSFER_TYPE := P_TY_MSGDETS_UPD.TRANSFER_TYPE;
P_TY_MSG_DETS.SETTLEMENT_AMT := P_TY_MSGDETS_UPD.SETTLEMENT_AMT;
P_TY_MSG_DETS.BANK_OPER_CODE := P_TY_MSGDETS_UPD.BANK_OPER_CODE;
P_TY_MSG_DETS.INSTR_CODE := P_TY_MSGDETS_UPD.INSTR_CODE;
P_TY_MSG_DETS.TRAN_TYPE_CODE := P_TY_MSGDETS_UPD.TRAN_TYPE_CODE;
P_TY_MSG_DETS.REGULATORY_REP1 := P_TY_MSGDETS_UPD.REGULATORY_REP1;
P_TY_MSG_DETS.REGULATORY_REP2 := P_TY_MSGDETS_UPD.REGULATORY_REP2;
P_TY_MSG_DETS.REGULATORY_REP3 := P_TY_MSGDETS_UPD.REGULATORY_REP3;
P_TY_MSG_DETS.ENVELOPE_CONTENTS1 := P_TY_MSGDETS_UPD.ENVELOPE_CONTENTS1;
P_TY_MSG_DETS.ENVELOPE_CONTENTS2 := P_TY_MSGDETS_UPD.ENVELOPE_CONTENTS2;
P_TY_MSG_DETS.ENVELOPE_CONTENTS3 := P_TY_MSGDETS_UPD.ENVELOPE_CONTENTS3;
P_TY_MSG_DETS.ENVELOPE_CONTENTS4 := P_TY_MSGDETS_UPD.ENVELOPE_CONTENTS4;
P_TY_MSG_DETS.ENVELOPE_CONTENTS5 := P_TY_MSGDETS_UPD.ENVELOPE_CONTENTS5;
P_TY_MSG_DETS.CR_VALUE_DT := P_TY_MSGDETS_UPD.CR_VALUE_DT;
P_TY_MSG_DETS.DR_VALUE_DT := P_TY_MSGDETS_UPD.DR_VALUE_DT;
P_TY_MSG_DETS.COUNTRY_CODE := P_TY_MSGDETS_UPD.COUNTRY_CODE;

---
P_TY_MCKDETAILS.AMOUNT_TAG := P_TY_MCKDETAILS_UPD.AMOUNT_TAG;
P_TY_MCKDETAILS.TAG_CCY := P_TY_MCKDETAILS_UPD.TAG_CCY;
P_TY_MCKDETAILS.ACC_BRANCH := P_TY_MCKDETAILS_UPD.ACC_BRANCH;
P_TY_MCKDETAILS.ACCOUNT := P_TY_MCKDETAILS_UPD.ACCOUNT;
P_TY_MCKDETAILS.ACC_CCY := P_TY_MCKDETAILS_UPD.ACC_CCY;
P_TY_MCKDETAILS.EX_RATE := P_TY_MCKDETAILS_UPD.EX_RATE;
P_TY_MCKDETAILS.TRANSFER_TYPE := P_TY_MCKDETAILS_UPD.TRANSFER_TYPE;
P_TY_MCKDETAILS.INSTRUMENT_TYPE := P_TY_MCKDETAILS_UPD.INSTRUMENT_TYPE;
P_TY_MCKDETAILS.INSTRUMENT_NO := P_TY_MCKDETAILS_UPD.INSTRUMENT_NO;
P_TY_MCKDETAILS.ULT_BENEFICIARY1 := P_TY_MCKDETAILS_UPD.ULT_BENEFICIARY1;
P_TY_MCKDETAILS.ULT_BENEFICIARY2 := P_TY_MCKDETAILS_UPD.ULT_BENEFICIARY2;
P_TY_MCKDETAILS.ULT_BENEFICIARY3 := P_TY_MCKDETAILS_UPD.ULT_BENEFICIARY3;
P_TY_MCKDETAILS.ULT_BENEFICIARY4 := P_TY_MCKDETAILS_UPD.ULT_BENEFICIARY4;
P_TY_MCKDETAILS.ULT_BENEFICIARY5 := P_TY_MCKDETAILS_UPD.ULT_BENEFICIARY5;
P_TY_MCKDETAILS.CLEARING_NETWORK := P_TY_MCKDETAILS_UPD.CLEARING_NETWORK;
P_TY_MCKDETAILS.PAYMENT_BY := P_TY_MCKDETAILS_UPD.PAYMENT_BY;
P_TY_MCKDETAILS.OTHER_DETAILS1 := P_TY_MCKDETAILS_UPD.OTHER_DETAILS1;
P_TY_MCKDETAILS.OTHER_DETAILS2 := P_TY_MCKDETAILS_UPD.OTHER_DETAILS2;
P_TY_MCKDETAILS.OTHER_DETAILS3 := P_TY_MCKDETAILS_UPD.OTHER_DETAILS3;
P_TY_MCKDETAILS.OTHER_DETAILS4 := P_TY_MCKDETAILS_UPD.OTHER_DETAILS4;
P_TY_MCKDETAILS.OTHER_DETAILS5 := P_TY_MCKDETAILS_UPD.OTHER_DETAILS5;
P_TY_MCKDETAILS.OTHER_DETAILS6 := P_TY_MCKDETAILS_UPD.OTHER_DETAILS6;
P_TY_MCKDETAILS.OTHER_DETAILS_TYPE1 := P_TY_MCKDETAILS_UPD.OTHER_DETAILS_TYPE1;
P_TY_MCKDETAILS.OTHER_DETAILS_TYPE2 := P_TY_MCKDETAILS_UPD.OTHER_DETAILS_TYPE2;
P_TY_MCKDETAILS.OTHER_DETAILS_TYPE3 := P_TY_MCKDETAILS_UPD.OTHER_DETAILS_TYPE3;
P_TY_MCKDETAILS.OTHER_DETAILS_TYPE4 := P_TY_MCKDETAILS_UPD.OTHER_DETAILS_TYPE4;
P_TY_MCKDETAILS.OTHER_DETAILS_TYPE5 := P_TY_MCKDETAILS_UPD.OTHER_DETAILS_TYPE5;
P_TY_MCKDETAILS.OTHER_DETAILS_TYPE6 := P_TY_MCKDETAILS_UPD.OTHER_DETAILS_TYPE6;
P_TY_RETAIL_TELLER.VIR_ACC_NO := G_VIRACCNO; --FCUBS_11_2_WB_Virtual
Accounts
P_TY_RETAIL_TELLER.DR_VIR_ACC_NO := G_DRVIRACCNO; --Parul Changes
P_TY_RETAIL_TELLER.INVOICE_NO := G_INVOICENO; --phase2 chnages for
invoice number CHANGE
/*
p_ty_mckdetails.contract_ref_no:=p_ty_mckdetails_upd.contract_ref_no;
p_ty_mckdetails.event_seq_no :=p_ty_mckdetails_upd.event_seq_no;
p_ty_mckdetails.expiry_date :=p_ty_mckdetails_upd.expiry_date;
p_ty_mckdetails.generation_date:=p_ty_mckdetails_upd.generation_date;
p_ty_mckdetails.settlement_amt :=p_ty_mckdetails_upd.settlement_amt;
p_ty_mckdetails.printed_stationary_no
p_ty_mckdetails_upd.printed_stationary_no;
p_ty_mckdetails.payable_branch :=p_ty_mckdetails_upd.payable_branch;
p_ty_mckdetails.routing_no :=p_ty_mckdetails_upd.routing_no;
p_ty_mckdetails.issuing_bank :=p_ty_mckdetails_upd.issuing_bank;
*/
P_TY_RETAIL_TELLER.FRM_SUB_ACC := G_FRM_SUBACCNO; --BOMLAE_R22_Sub_Account
P_TY_RETAIL_TELLER.TO_SUB_ACC := G_TO_SUBACCNO; --BOMLAE_R22_Sub_Account
P_TY_RETAIL_TELLER.CHARGE_TYPE := G_CHARGETYPE; -- Changes for Third party Cash
withdrawal

/* --FCUBS_11.2.0.0.0$BOMLAE_Customer_Choreography_Financial_Transactions
start
P_TY_RETAIL_TELLER.UPLOAD_REF_NO := G_UPD_REF;
P_TY_RETAIL_TELLER.OTP_TEXT := G_OTP_TXT;
P_TY_RETAIL_TELLER.SEND_OTP_TO := G_SND_OTP;
P_TY_RETAIL_TELLER.SIGN_VERIFIED := G_SIG_VER;
P_TY_RETAIL_TELLER.ORIGINAL_VERIFIED := G_ORG_VER;
P_TY_RETAIL_TELLER.DOC_REF_NO := G_DOC_REF;
--FCUBS_11.2.0.0.0$BOMLAE_Customer_Choreography_Financial_Transactions end*/

DBG(' CHARGE_TYPE 13 -->' || G_CHARGETYPE);


RETURN TRUE;
EXCEPTION

WHEN OTHERS THEN


DEBUG.PR_DEBUG('AC',
SUBSTR(DBMS_UTILITY.FORMAT_CALL_STACK, 87) || '^^' ||
DBMS_UTILITY.FORMAT_ERROR_STACK || '^^' ||
DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);

DBG('in WOT ' || SQLERRM);


P_ERR_CODE := '';
P_ERR_PARAM := NULL;
RETURN FALSE;

END FN_COPY_UPLOAD_TO_BASE;
--copy from upload to base - end
--------------------------------------------------------------
PROCEDURE PR_REGISTER_OVD(P_XREF IN DETBS_RTL_TELLER.XREF%TYPE,
P_BRN IN DETBS_RTL_TELLER.BRANCH_CODE%TYPE,
P_TYP_ERR IN OVPKSS.TBL_ERROR,
P_RET IN OUT NUMBER) IS
L_ERR_TYPE ERTB_MSGS.TYPE%TYPE;
BEGIN
DBG('Inside pr_register_ovd.. ');
IF P_TYP_ERR.COUNT > 0 THEN
FOR OVR_CNT IN P_TYP_ERR.FIRST .. P_TYP_ERR.LAST LOOP
DBG('##### Error Code ' || P_TYP_ERR(OVR_CNT).ERR_CODE);
DBG('##### Error Parm ' || P_TYP_ERR(OVR_CNT).PARAMS);
L_ERR_TYPE := OVPKSS.FN_GETTYPE(P_TYP_ERR(OVR_CNT).ERR_CODE); -- QQQQQQQQ :
SSanjeev Temp
DBG('##### Error type ' || L_ERR_TYPE);
IF L_ERR_TYPE = 'O' THEN
IFPKSS_FIN_OVD.PR_SET_TRACKED_ENTITY(P_BRN,
P_XREF,
'MISC',
'N',
'DUMMY');
IFPKSS_FIN_OVD.PR_REGISTER_OVD(P_TYP_ERR(OVR_CNT).ERR_CODE);
END IF;
END LOOP;
END IF;
DBG('finished pr_register_ovd');
RETURN;
EXCEPTION
WHEN OTHERS THEN
DBG('E',
'Unexpected error in pr_register_ovd with SQLERRM :' || SQLERRM);
P_RET := -1;
END PR_REGISTER_OVD;
-------------------------------------------------------------------
PROCEDURE PR_RESOLVE_ROUTE(P_AWI IN VARCHAR2,
P_CCY IN VARCHAR2,
P_BRANCH IN VARCHAR2,
P_COUNTRY IN VARCHAR2,
P_ROUTE_CODE OUT VARCHAR2) IS
BEGIN
DBG('AWI ' || P_AWI || ' Ccy ' || P_CCY || ' Branch ' || P_BRANCH ||
' Country ' || P_COUNTRY);
BEGIN
SELECT ROUTE_CODE
INTO P_ROUTE_CODE
FROM CSTMS_AWI_TRANSFER_ROUTE
WHERE BRANCH_CODE = P_BRANCH
AND CCY_CODE = P_CCY
AND COUNTRY_CODE = P_COUNTRY
AND AWI_CODE = P_AWI
AND RECORD_STAT = 'O';
EXCEPTION
WHEN NO_DATA_FOUND THEN
BEGIN
SELECT ROUTE_CODE
INTO P_ROUTE_CODE
FROM CSTMS_AWI_TRANSFER_ROUTE
WHERE BRANCH_CODE = P_BRANCH
AND CCY_CODE = P_CCY
AND COUNTRY_CODE = P_COUNTRY
AND AWI_CODE = '*.*'
AND RECORD_STAT = 'O';
EXCEPTION
WHEN NO_DATA_FOUND THEN
P_ROUTE_CODE := NULL;
END;
END;
DBG('Got route code as ' || P_ROUTE_CODE);
END PR_RESOLVE_ROUTE;

FUNCTION FN_ARC_SETTLE_PICKUP(P_ROUTE_CODE IN VARCHAR2,


P_CR_ACCOUNT IN OUT VARCHAR2,
P_CR_BRANCH IN OUT VARCHAR2,
P_ARC_SETTLE IN OUT CSTBS_ARC_SETTLE%ROWTYPE,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS
L_ARC_SETTLE CSTMS_ARC_SETTLE%ROWTYPE;
L_CUST VARCHAR2(9);
BEGIN
DBG('In side pr_arc_settle_pickup for Route code:' || P_ROUTE_CODE);
----------------
SELECT *
INTO L_ARC_SETTLE
FROM CSTMS_ARC_SETTLE
WHERE ROUTE_CODE = P_ROUTE_CODE;
DBG('After Selecting the details for route code');
----------------
P_ARC_SETTLE.ORDERING_CUSTOMER1 := L_ARC_SETTLE.ORDERING_CUSTOMER1;
P_ARC_SETTLE.ORDERING_CUSTOMER2 := L_ARC_SETTLE.ORDERING_CUSTOMER2;
P_ARC_SETTLE.ORDERING_CUSTOMER3 := L_ARC_SETTLE.ORDERING_CUSTOMER3;
P_ARC_SETTLE.ORDERING_CUSTOMER4 := L_ARC_SETTLE.ORDERING_CUSTOMER4;
P_ARC_SETTLE.ORDERING_CUSTOMER5 := L_ARC_SETTLE.ORDERING_CUSTOMER5;
P_ARC_SETTLE.PAYMENT_DETAILS1 := L_ARC_SETTLE.PAYMENT_DETAILS1;
P_ARC_SETTLE.PAYMENT_DETAILS2 := L_ARC_SETTLE.PAYMENT_DETAILS2;
P_ARC_SETTLE.PAYMENT_DETAILS3 := L_ARC_SETTLE.PAYMENT_DETAILS3;
P_ARC_SETTLE.PAYMENT_DETAILS4 := L_ARC_SETTLE.PAYMENT_DETAILS4;
P_ARC_SETTLE.ACC_WITH_INSTN1 := L_ARC_SETTLE.ACC_WITH_INSTN1;
P_ARC_SETTLE.ACC_WITH_INSTN2 := L_ARC_SETTLE.ACC_WITH_INSTN2;
P_ARC_SETTLE.ACC_WITH_INSTN3 := L_ARC_SETTLE.ACC_WITH_INSTN3;
P_ARC_SETTLE.ACC_WITH_INSTN4 := L_ARC_SETTLE.ACC_WITH_INSTN4;
P_ARC_SETTLE.ACC_WITH_INSTN5 := L_ARC_SETTLE.ACC_WITH_INSTN5;
P_ARC_SETTLE.INTERMEDIARY1 := L_ARC_SETTLE.INTERMEDIARY1;
P_ARC_SETTLE.INTERMEDIARY2 := L_ARC_SETTLE.INTERMEDIARY2;
P_ARC_SETTLE.INTERMEDIARY3 := L_ARC_SETTLE.INTERMEDIARY3;
P_ARC_SETTLE.INTERMEDIARY4 := L_ARC_SETTLE.INTERMEDIARY4;
P_ARC_SETTLE.INTERMEDIARY5 := L_ARC_SETTLE.INTERMEDIARY5;
P_ARC_SETTLE.RECV_INTERMEDIARY1 := L_ARC_SETTLE.RECV_INTERMEDIARY1;
P_ARC_SETTLE.RECV_INTERMEDIARY2 := L_ARC_SETTLE.RECV_INTERMEDIARY2;
P_ARC_SETTLE.RECV_INTERMEDIARY3 := L_ARC_SETTLE.RECV_INTERMEDIARY3;
P_ARC_SETTLE.RECV_INTERMEDIARY4 := L_ARC_SETTLE.RECV_INTERMEDIARY4;
P_ARC_SETTLE.RECV_INTERMEDIARY5 := L_ARC_SETTLE.RECV_INTERMEDIARY5;
P_ARC_SETTLE.SNDR_TO_RCVR_INFO1 := L_ARC_SETTLE.SNDR_TO_RCVR_INFO1;
P_ARC_SETTLE.SNDR_TO_RCVR_INFO2 := L_ARC_SETTLE.SNDR_TO_RCVR_INFO2;
P_ARC_SETTLE.SNDR_TO_RCVR_INFO3 := L_ARC_SETTLE.SNDR_TO_RCVR_INFO3;
P_ARC_SETTLE.SNDR_TO_RCVR_INFO4 := L_ARC_SETTLE.SNDR_TO_RCVR_INFO4;
P_ARC_SETTLE.SNDR_TO_RCVR_INFO5 := L_ARC_SETTLE.SNDR_TO_RCVR_INFO5;
P_ARC_SETTLE.SNDR_TO_RCVR_INFO6 := L_ARC_SETTLE.SNDR_TO_RCVR_INFO6;
P_ARC_SETTLE.RCVR_CORRESP1 := L_ARC_SETTLE.RCVR_CORRESP1;
P_ARC_SETTLE.RCVR_CORRESP2 := L_ARC_SETTLE.RCVR_CORRESP2;
P_ARC_SETTLE.RCVR_CORRESP3 := L_ARC_SETTLE.RCVR_CORRESP3;
P_ARC_SETTLE.RCVR_CORRESP4 := L_ARC_SETTLE.RCVR_CORRESP4;
P_ARC_SETTLE.RCVR_CORRESP5 := L_ARC_SETTLE.RCVR_CORRESP5;
P_ARC_SETTLE.ORDERING_INSTITUTION1 := L_ARC_SETTLE.ORDERING_INSTITUTION1;
P_ARC_SETTLE.ORDERING_INSTITUTION2 := L_ARC_SETTLE.ORDERING_INSTITUTION2;
P_ARC_SETTLE.ORDERING_INSTITUTION3 := L_ARC_SETTLE.ORDERING_INSTITUTION3;
P_ARC_SETTLE.ORDERING_INSTITUTION4 := L_ARC_SETTLE.ORDERING_INSTITUTION4;
P_ARC_SETTLE.ORDERING_INSTITUTION5 := L_ARC_SETTLE.ORDERING_INSTITUTION5;
P_ARC_SETTLE.INT_REIM_INST1 := L_ARC_SETTLE.INT_REIM_INST1;
P_ARC_SETTLE.INT_REIM_INST2 := L_ARC_SETTLE.INT_REIM_INST2;
P_ARC_SETTLE.INT_REIM_INST3 := L_ARC_SETTLE.INT_REIM_INST3;
P_ARC_SETTLE.INT_REIM_INST4 := L_ARC_SETTLE.INT_REIM_INST4;
P_ARC_SETTLE.INT_REIM_INST5 := L_ARC_SETTLE.INT_REIM_INST5;
P_ARC_SETTLE.ERI_CCY := L_ARC_SETTLE.ERI_CCY;
P_ARC_SETTLE.ERI_AMOUNT := L_ARC_SETTLE.ERI_AMOUNT;
P_ARC_SETTLE.MSG_TYPE := L_ARC_SETTLE.MSG_TYPE;
P_ARC_SETTLE.RECEIVER := L_ARC_SETTLE.RECEIVER;
P_ARC_SETTLE.PAY_RECEIVE := L_ARC_SETTLE.PAY_RECEIVE;
P_ARC_SETTLE.COUNTERPARTY := L_ARC_SETTLE.COUNTERPARTY;
P_ARC_SETTLE.INSTRUMENT_TYPE := L_ARC_SETTLE.INSTRUMENT_TYPE;
P_ARC_SETTLE.INSTRUMENT_NO := L_ARC_SETTLE.INSTRUMENT_NO;
P_ARC_SETTLE.CHARGES_DETAILS := L_ARC_SETTLE.CHARGES_DETAILS;
-- p_arc_settle.our_correspondent :=l_arc_settle.our_correspondent;
P_ARC_SETTLE.PAYMENT_BY := L_ARC_SETTLE.PAYMENT_BY;
P_ARC_SETTLE.COVER_REQUIRED := L_ARC_SETTLE.COVER_REQUIRED;
P_ARC_SETTLE.TRANSFER_TYPE := L_ARC_SETTLE.TRANSFER_TYPE;
P_ARC_SETTLE.BANK_OPER_CODE := L_ARC_SETTLE.BANK_OPER_CODE;
P_ARC_SETTLE.INSTR_CODE := L_ARC_SETTLE.INSTR_CODE;
P_ARC_SETTLE.TRAN_TYPE_CODE := L_ARC_SETTLE.TRAN_TYPE_CODE;
P_ARC_SETTLE.REGULATORY_REP1 := L_ARC_SETTLE.REGULATORY_REP1;
P_ARC_SETTLE.REGULATORY_REP2 := L_ARC_SETTLE.REGULATORY_REP2;
P_ARC_SETTLE.REGULATORY_REP3 := L_ARC_SETTLE.REGULATORY_REP3;
P_ARC_SETTLE.ENVELOPE_CONTENTS1 := L_ARC_SETTLE.ENVELOPE_CONTENTS1;
P_ARC_SETTLE.ENVELOPE_CONTENTS2 := L_ARC_SETTLE.ENVELOPE_CONTENTS2;
P_ARC_SETTLE.ENVELOPE_CONTENTS3 := L_ARC_SETTLE.ENVELOPE_CONTENTS3;
P_ARC_SETTLE.ENVELOPE_CONTENTS4 := L_ARC_SETTLE.ENVELOPE_CONTENTS4;
P_ARC_SETTLE.ENVELOPE_CONTENTS5 := L_ARC_SETTLE.ENVELOPE_CONTENTS5;
P_ARC_SETTLE.ROUTE_DESC := L_ARC_SETTLE.ROUTE_DESC;

--FCUBS11.0 9NT1316 MANTAS INTEGRATION CHANGES DONE ON 29-OCT-2009 BY P.BALAJI


STARTS
P_ARC_SETTLE.ACCT_WITH_INST_CTRY := L_ARC_SETTLE.ACC_WITH_INSTN6;
P_ARC_SETTLE.INTERMEDIARY_CTRY := L_ARC_SETTLE.INTERMEDIARY6;
P_ARC_SETTLE.RECEIVER_CORRESP_CTRY := L_ARC_SETTLE.RCVR_CORRESP6;
P_ARC_SETTLE.BEN_INST_CTRY := L_ARC_SETTLE.BENEF_INSTITUTION6;
P_ARC_SETTLE.REIM_CTRY := L_ARC_SETTLE.INT_REIM_INST6;
P_ARC_SETTLE.RECVR_INTERMED_CTRY := L_ARC_SETTLE.RECV_INTERMEDIARY6;
P_ARC_SETTLE.BEN_INST_COVER_CTRY := L_ARC_SETTLE.BENEF_INST6_FOR_COVER;
--FCUBS11.0 9NT1316 MANTAS INTEGRATION CHANGES DONE ON 29-OCT-2009 BY P.BALAJI
ENDS

----------------
IF P_CR_ACCOUNT IS NULL THEN
P_CR_ACCOUNT := L_ARC_SETTLE.CREDIT_ACCOUNT;
P_CR_BRANCH := L_ARC_SETTLE.CREDIT_ACCOUNT_BRANCH;
END IF;
----------------
DBG('The p_cr_account l_arc_settle.credit_account is :' ||
P_CR_ACCOUNT);
DBG('The p_cr_branch l_arc_settle.credit_account_branch is:' ||
P_CR_BRANCH);
----------------
--11-JUN-2008 FCUBSV.UM_10.1.0.0.0.0.0 ILM Changes start
IF P_CR_BRANCH IS NOT NULL AND P_CR_ACCOUNT IS NOT NULL THEN
BEGIN
-- FCC73ITR2 SFR 58
SELECT CUST_NO
INTO L_CUST
FROM STTMS_CUST_ACCOUNT
WHERE CUST_AC_NO = P_CR_ACCOUNT
AND BRANCH_CODE = P_CR_BRANCH;

SELECT BIC_CODE
INTO P_ARC_SETTLE.OUR_CORRESPONDENT
FROM ISTMS_BIC_DIRECTORY
WHERE CUSTOMER_NO = L_CUST;
EXCEPTION
WHEN OTHERS THEN
P_RET := -1;
OVPKSS.PR_APPENDTBL('GW-RTL-018', L_CUST);
DBG('E',
'In exception while in fn_arc_settle_pickup with sqlerrm : ' ||
SQLERRM);
RETURN FALSE;
END;
END IF;
--11-JUN-2008 FCUBSV.UM_10.1.0.0.0.0.0 ILM Changes end
----------------
DBG('The p_arc_settle.OUR_CORRESPONDENT is:' ||
P_ARC_SETTLE.OUR_CORRESPONDENT);
P_RET := 0;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
P_RET := -1;
OVPKSS.PR_APPENDTBL('GW-RTL-017', NULL);
DBG('E',
'In exception while in fn_arc_settle_pickup with sqlerrm : ' ||
SQLERRM);
RETURN FALSE;
END FN_ARC_SETTLE_PICKUP;

-----------------------------------------------------------------------------------
----
FUNCTION FN_ARC_SETTLE_SUPERSCRIBE(P_TY_RETAIL_TELLER IN OUT DETBS_RTL_TELLER
%ROWTYPE --typeconv typ_retail_teller_rec
,
P_ARC_SETTLE IN CSTBS_ARC_SETTLE
%ROWTYPE,
P_ARC_SETTLE_DEST IN OUT CSTBS_ARC_SETTLE
%ROWTYPE,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS
BEGIN
DBG('In Superscribe arc settle ');
--dbg('In Superscribe arc settle '||p_arc_settle_upld(1));
-- p_arc_settle_dest.xref := p_arc_settle.xref; -- FCC73ITR1 SFR 492
P_ARC_SETTLE_DEST.XREF := P_TY_RETAIL_TELLER.XREF;
P_ARC_SETTLE_DEST.ROUTE_CODE := P_ARC_SETTLE.ROUTE_CODE;
P_ARC_SETTLE_DEST.TRANSFER_TYPE := P_ARC_SETTLE.TRANSFER_TYPE;
P_ARC_SETTLE_DEST.BANK_OPER_CODE := P_ARC_SETTLE.BANK_OPER_CODE;
P_ARC_SETTLE_DEST.INSTR_CODE := P_ARC_SETTLE.INSTR_CODE;
P_ARC_SETTLE_DEST.TRAN_TYPE_CODE := P_ARC_SETTLE.TRAN_TYPE_CODE;
-------------------------
P_ARC_SETTLE_DEST.CR_VALUE_DT := P_ARC_SETTLE.CR_VALUE_DT;
DBG('In Superscribe arc settle calling depks_rtl_teller ');
DEPKS_RTL_TELLER.PR_SET_CR_VAL_DT(P_ARC_SETTLE_DEST.CR_VALUE_DT);
-------------------------
P_ARC_SETTLE_DEST.DR_VALUE_DT := P_ARC_SETTLE.DR_VALUE_DT;
DEPKS_RTL_TELLER.PR_SET_CR_VAL_DT(P_ARC_SETTLE_DEST.DR_VALUE_DT);

-- fcj kernel focus nvl changes starts


-------------------------
P_ARC_SETTLE_DEST.ORDERING_CUSTOMER1 :=
NVL(P_ARC_SETTLE_DEST.ORDERING_CUSTOMER1,
P_ARC_SETTLE.ORDERING_CUSTOMER1);
P_ARC_SETTLE_DEST.ORDERING_CUSTOMER2 :=
NVL(P_ARC_SETTLE_DEST.ORDERING_CUSTOMER2,
P_ARC_SETTLE.ORDERING_CUSTOMER2);
P_ARC_SETTLE_DEST.ORDERING_CUSTOMER3 :=
NVL(P_ARC_SETTLE_DEST.ORDERING_CUSTOMER3,
P_ARC_SETTLE.ORDERING_CUSTOMER3);
P_ARC_SETTLE_DEST.ORDERING_CUSTOMER4 :=
NVL(P_ARC_SETTLE_DEST.ORDERING_CUSTOMER4,
P_ARC_SETTLE.ORDERING_CUSTOMER4);
P_ARC_SETTLE_DEST.ORDERING_CUSTOMER5 :=
NVL(P_ARC_SETTLE_DEST.ORDERING_CUSTOMER5,
P_ARC_SETTLE.ORDERING_CUSTOMER5);
P_ARC_SETTLE_DEST.RECEIVER := NVL(P_ARC_SETTLE_DEST.RECEIVER,
P_ARC_SETTLE.RECEIVER);
P_ARC_SETTLE_DEST.PAYMENT_DETAILS1 := NVL(P_ARC_SETTLE_DEST.PAYMENT_DETAILS1,
P_ARC_SETTLE.PAYMENT_DETAILS1);
P_ARC_SETTLE_DEST.PAYMENT_DETAILS2 := NVL(P_ARC_SETTLE_DEST.PAYMENT_DETAILS2,
P_ARC_SETTLE.PAYMENT_DETAILS2);
P_ARC_SETTLE_DEST.PAYMENT_DETAILS3 := NVL(P_ARC_SETTLE_DEST.PAYMENT_DETAILS3,
P_ARC_SETTLE.PAYMENT_DETAILS3);
P_ARC_SETTLE_DEST.PAYMENT_DETAILS4 := NVL(P_ARC_SETTLE_DEST.PAYMENT_DETAILS4,
P_ARC_SETTLE.PAYMENT_DETAILS4);
P_ARC_SETTLE_DEST.SNDR_TO_RCVR_INFO1 :=
NVL(P_ARC_SETTLE_DEST.SNDR_TO_RCVR_INFO1,
P_ARC_SETTLE.SNDR_TO_RCVR_INFO1);
P_ARC_SETTLE_DEST.SNDR_TO_RCVR_INFO2 :=
NVL(P_ARC_SETTLE_DEST.SNDR_TO_RCVR_INFO2,
P_ARC_SETTLE.SNDR_TO_RCVR_INFO2);
P_ARC_SETTLE_DEST.SNDR_TO_RCVR_INFO3 :=
NVL(P_ARC_SETTLE_DEST.SNDR_TO_RCVR_INFO3,
P_ARC_SETTLE.SNDR_TO_RCVR_INFO3);
P_ARC_SETTLE_DEST.SNDR_TO_RCVR_INFO4 :=
NVL(P_ARC_SETTLE_DEST.SNDR_TO_RCVR_INFO4,
P_ARC_SETTLE.SNDR_TO_RCVR_INFO4);
P_ARC_SETTLE_DEST.SNDR_TO_RCVR_INFO5 :=
NVL(P_ARC_SETTLE_DEST.SNDR_TO_RCVR_INFO5,
P_ARC_SETTLE.SNDR_TO_RCVR_INFO5);
P_ARC_SETTLE_DEST.SNDR_TO_RCVR_INFO6 :=
NVL(P_ARC_SETTLE_DEST.SNDR_TO_RCVR_INFO6,
P_ARC_SETTLE.SNDR_TO_RCVR_INFO6);
P_ARC_SETTLE_DEST.CHARGES_DETAILS := NVL(P_ARC_SETTLE_DEST.CHARGES_DETAILS,
P_ARC_SETTLE.CHARGES_DETAILS);
P_ARC_SETTLE_DEST.REGULATORY_REP1 := NVL(P_ARC_SETTLE_DEST.REGULATORY_REP1,
P_ARC_SETTLE.REGULATORY_REP1);
P_ARC_SETTLE_DEST.REGULATORY_REP2 := NVL(P_ARC_SETTLE_DEST.REGULATORY_REP2,
P_ARC_SETTLE.REGULATORY_REP2);
P_ARC_SETTLE_DEST.REGULATORY_REP3 := NVL(P_ARC_SETTLE_DEST.REGULATORY_REP3,
P_ARC_SETTLE.REGULATORY_REP3);
P_ARC_SETTLE_DEST.ENVELOPE_CONTENTS1 :=
NVL(P_ARC_SETTLE_DEST.ENVELOPE_CONTENTS1,
P_ARC_SETTLE.ENVELOPE_CONTENTS1);
P_ARC_SETTLE_DEST.ENVELOPE_CONTENTS2 :=
NVL(P_ARC_SETTLE_DEST.ENVELOPE_CONTENTS2,
P_ARC_SETTLE.ENVELOPE_CONTENTS2);
P_ARC_SETTLE_DEST.ENVELOPE_CONTENTS3 :=
NVL(P_ARC_SETTLE_DEST.ENVELOPE_CONTENTS3,
P_ARC_SETTLE.ENVELOPE_CONTENTS3);
P_ARC_SETTLE_DEST.ENVELOPE_CONTENTS4 :=
NVL(P_ARC_SETTLE_DEST.ENVELOPE_CONTENTS4,
P_ARC_SETTLE.ENVELOPE_CONTENTS4);
P_ARC_SETTLE_DEST.ENVELOPE_CONTENTS5 :=
NVL(P_ARC_SETTLE_DEST.ENVELOPE_CONTENTS5,
P_ARC_SETTLE.ENVELOPE_CONTENTS5);

DBG('Now deriving other fields ' || P_ARC_SETTLE_DEST.TRANSFER_TYPE);


IF P_ARC_SETTLE_DEST.TRANSFER_TYPE = 'B' THEN
P_ARC_SETTLE_DEST.BENEF_INSTITUTION1 :=
NVL(P_ARC_SETTLE_DEST.BENEF_INSTITUTION1,
P_ARC_SETTLE.ULT_BENEFICIARY1);
-- p_ty_retail_teller.ultbnf1;
P_ARC_SETTLE_DEST.BENEF_INSTITUTION2 :=
NVL(P_ARC_SETTLE_DEST.BENEF_INSTITUTION2,
P_ARC_SETTLE.ULT_BENEFICIARY2);
-- p_ty_retail_teller.ultbnf2;
P_ARC_SETTLE_DEST.BENEF_INSTITUTION3 :=
NVL(P_ARC_SETTLE_DEST.BENEF_INSTITUTION3,
P_ARC_SETTLE.ULT_BENEFICIARY3);
-- p_ty_retail_teller.ultbnf3;
P_ARC_SETTLE_DEST.BENEF_INSTITUTION4 :=
NVL(P_ARC_SETTLE_DEST.BENEF_INSTITUTION4,
P_ARC_SETTLE.ULT_BENEFICIARY4);
-- p_ty_retail_teller.ultbnf4;
P_ARC_SETTLE_DEST.BENEF_INSTITUTION5 :=
NVL(P_ARC_SETTLE_DEST.BENEF_INSTITUTION5,
P_ARC_SETTLE.ULT_BENEFICIARY5);
-- p_ty_retail_teller.ultbnf5;
ELSE
P_ARC_SETTLE_DEST.ULT_BENEFICIARY1 := NVL(P_ARC_SETTLE_DEST.ULT_BENEFICIARY1,
P_ARC_SETTLE.ULT_BENEFICIARY1);
P_ARC_SETTLE_DEST.ULT_BENEFICIARY2 := NVL(P_ARC_SETTLE_DEST.ULT_BENEFICIARY2,
P_ARC_SETTLE.ULT_BENEFICIARY2);
P_ARC_SETTLE_DEST.ULT_BENEFICIARY3 := NVL(P_ARC_SETTLE_DEST.ULT_BENEFICIARY3,
P_ARC_SETTLE.ULT_BENEFICIARY3);
P_ARC_SETTLE_DEST.ULT_BENEFICIARY4 := NVL(P_ARC_SETTLE_DEST.ULT_BENEFICIARY4,
P_ARC_SETTLE.ULT_BENEFICIARY4);
P_ARC_SETTLE_DEST.ULT_BENEFICIARY5 := NVL(P_ARC_SETTLE_DEST.ULT_BENEFICIARY5,
P_ARC_SETTLE.ULT_BENEFICIARY5);
END IF;

P_ARC_SETTLE_DEST.ACC_WITH_INSTN1 := NVL(P_ARC_SETTLE_DEST.ACC_WITH_INSTN1,
P_ARC_SETTLE.ACC_WITH_INSTN1);
P_ARC_SETTLE_DEST.ACC_WITH_INSTN2 := NVL(P_ARC_SETTLE_DEST.ACC_WITH_INSTN2,
P_ARC_SETTLE.ACC_WITH_INSTN2);
P_ARC_SETTLE_DEST.ACC_WITH_INSTN3 := NVL(P_ARC_SETTLE_DEST.ACC_WITH_INSTN3,
P_ARC_SETTLE.ACC_WITH_INSTN3);
P_ARC_SETTLE_DEST.ACC_WITH_INSTN4 := NVL(P_ARC_SETTLE_DEST.ACC_WITH_INSTN4,
P_ARC_SETTLE.ACC_WITH_INSTN4);
P_ARC_SETTLE_DEST.ACC_WITH_INSTN5 := NVL(P_ARC_SETTLE_DEST.ACC_WITH_INSTN5,
P_ARC_SETTLE.ACC_WITH_INSTN5);

P_ARC_SETTLE_DEST.COUNTRY_CODE := NVL(P_ARC_SETTLE_DEST.COUNTRY_CODE,
P_ARC_SETTLE.COUNTRY_CODE);

IF P_ARC_SETTLE_DEST.COVER_REQUIRED = 'Y' THEN


P_ARC_SETTLE_DEST.BENEF_INST1_FOR_COVER :=
NVL(P_ARC_SETTLE_DEST.BENEF_INST1_FOR_COVER,

P_ARC_SETTLE_DEST.ACC_WITH_INSTN1);
P_ARC_SETTLE_DEST.BENEF_INST2_FOR_COVER :=
NVL(P_ARC_SETTLE_DEST.BENEF_INST2_FOR_COVER,

P_ARC_SETTLE_DEST.ACC_WITH_INSTN2);
P_ARC_SETTLE_DEST.BENEF_INST3_FOR_COVER :=
NVL(P_ARC_SETTLE_DEST.BENEF_INST3_FOR_COVER,

P_ARC_SETTLE_DEST.ACC_WITH_INSTN3);
P_ARC_SETTLE_DEST.BENEF_INST4_FOR_COVER :=
NVL(P_ARC_SETTLE_DEST.BENEF_INST4_FOR_COVER,

P_ARC_SETTLE_DEST.ACC_WITH_INSTN4);
P_ARC_SETTLE_DEST.BENEF_INST5_FOR_COVER :=
NVL(P_ARC_SETTLE_DEST.BENEF_INST5_FOR_COVER,

P_ARC_SETTLE_DEST.ACC_WITH_INSTN5);
END IF;
--nvl changes ends
--FCUBS11.0 9NT1316 MANTAS INTEGRATION CHANGES DONE ON 29-OCT-2009 BY P.BALAJI
STARTS
P_ARC_SETTLE_DEST.ACCT_WITH_INST_CTRY :=
NVL(P_ARC_SETTLE_DEST.ACCT_WITH_INST_CTRY,

P_ARC_SETTLE.ACCT_WITH_INST_CTRY);
P_ARC_SETTLE_DEST.INTERMEDIARY_CTRY :=
NVL(P_ARC_SETTLE_DEST.INTERMEDIARY_CTRY,
P_ARC_SETTLE.INTERMEDIARY_CTRY);
P_ARC_SETTLE_DEST.RECEIVER_CORRESP_CTRY :=
NVL(P_ARC_SETTLE_DEST.RECEIVER_CORRESP_CTRY,

P_ARC_SETTLE.RECEIVER_CORRESP_CTRY);
P_ARC_SETTLE_DEST.BEN_INST_CTRY := NVL(P_ARC_SETTLE_DEST.BEN_INST_CTRY,
P_ARC_SETTLE.BEN_INST_CTRY);
P_ARC_SETTLE_DEST.REIM_CTRY := NVL(P_ARC_SETTLE_DEST.REIM_CTRY,
P_ARC_SETTLE.REIM_CTRY);
P_ARC_SETTLE_DEST.RECVR_INTERMED_CTRY :=
NVL(P_ARC_SETTLE_DEST.RECVR_INTERMED_CTRY,

P_ARC_SETTLE.RECVR_INTERMED_CTRY);
P_ARC_SETTLE_DEST.BEN_INST_COVER_CTRY :=
NVL(P_ARC_SETTLE_DEST.BEN_INST_COVER_CTRY,

P_ARC_SETTLE.BEN_INST_COVER_CTRY);
--FCUBS11.0 9NT1316 MANTAS INTEGRATION CHANGES DONE ON 29-OCT-2009 BY P.BALAJI
ENDS

DBG('After Superscribe ARC Settle');


P_RET := 0;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('E',
'In exception in fn_arc_settle_superscribe with sqlerrm : ' ||
SQLERRM);
P_RET := -1;
OVPKSS.PR_APPENDTBL('GW-RTL-017', NULL);
RETURN FALSE;
END FN_ARC_SETTLE_SUPERSCRIBE;
--------------------------------------------------------------
FUNCTION FN_CHARGE_SUPERSCRIBE(P_TBL_CHGDETS IN TYP_TBLCHGDETS,
P_DETB_RTL_TLR IN OUT DETBS_RTL_TELLER%ROWTYPE,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS
--RT_chags on same Fcy withdraw Start
CURSOR C IS
SELECT *
FROM LMTMS_TYPE_VALUES
WHERE TYPE IN (SELECT TYPE
FROM LMTMS_TYPE_OF_TYPES
WHERE RECORD_STAT = 'O'
AND AUTH_STAT = 'A')
AND TYPE = 'CROSS_CCY_FX';
--RT_chags on same Fcy withdraw End
BEGIN
DBG('Inside fn_charge_superscribe');
FOR L_ROW IN 1 .. P_TBL_CHGDETS.COUNT LOOP
--RT_chags on same Fcy withdraw Start
DBG('P_DETB_RTL_TLR.TXN_CCY:P_DETB_RTL_TLR.OFS_CCY ' ||
P_DETB_RTL_TLR.TXN_CCY || '-' || P_DETB_RTL_TLR.OFS_CCY);
IF P_DETB_RTL_TLR.TXN_CCY <> P_DETB_RTL_TLR.OFS_CCY THEN
FOR rec IN C LOOP
DBG('Function id: ' || gwpks_util.pkg_func);
DBG('gwpks_util.pkg_func' || gwpks_util.pkg_func || '-' ||
rec.value || '-' || rec.code);
--release 3A changes changes commented and modified starts
--IF gwpks_util.pkg_func IN (rec.code) AND
-- rec.value = 'Y_' || gwpks_util.pkg_func THEN
IF gwpks_util.pkg_func IN (rec.value) AND rec.code = 'Y' THEN
--release 3A changes commented and modified ends
P_DETB_RTL_TLR.WAIVER := 'Y';
DBG('Waiver Flag' || P_TBL_CHGDETS(L_ROW).WAIVER);
END IF;
END LOOP;
END IF;
--RT_chags on same Fcy withdraw End
DBG('l_row = ' || L_ROW);
DBG('p_tbl_chgdets(' || L_ROW || ').mis_head..... : ' || P_TBL_CHGDETS(L_ROW)
.MIS_HEAD);
DBG('p_tbl_chgdets(' || L_ROW || ').waiver....... : ' || P_TBL_CHGDETS(L_ROW)
.WAIVER);
DBG('p_tbl_chgdets(' || L_ROW || ').chg_amt...... : ' || P_TBL_CHGDETS(L_ROW)
.CHG_AMT);
DBG('p_tbl_chgdets(' || L_ROW || ').chg_ccy...... : ' || P_TBL_CHGDETS(L_ROW)
.COD_CHG_CCY);
DBG('p_tbl_chgdets(' || L_ROW || ').txn_code..... : ' || P_TBL_CHGDETS(L_ROW)
.TXN_CODE);
DBG('p_tbl_chgdets(' || L_ROW || ').chg_gl....... : ' || P_TBL_CHGDETS(L_ROW)
.CHG_GL);
DBG('p_tbl_chgdets(' || L_ROW || ').netting_ind.. : ' || P_TBL_CHGDETS(L_ROW)
.NETTING_IND);

IF L_ROW = 1 THEN
P_DETB_RTL_TLR.MIS_HEAD_1 := P_TBL_CHGDETS(L_ROW).MIS_HEAD;
IF NVL(P_TBL_CHGDETS(L_ROW).WAIVER, 'N') = 'Y' THEN
-- FCC73ITR1 SFR 439
P_DETB_RTL_TLR.CHG_AMT := 0;
ELSE
P_DETB_RTL_TLR.CHG_AMT := P_TBL_CHGDETS(L_ROW).CHG_AMT;
END IF;
P_DETB_RTL_TLR.CHG_CCY := P_TBL_CHGDETS(L_ROW).COD_CHG_CCY;
P_DETB_RTL_TLR.CHG_GL := P_TBL_CHGDETS(L_ROW).CHG_GL;
P_DETB_RTL_TLR.TXN_CODE := P_TBL_CHGDETS(L_ROW).TXN_CODE;
P_DETB_RTL_TLR.NETTING_IND := NVL(P_TBL_CHGDETS(L_ROW).NETTING_IND,
'N');

ELSIF L_ROW = 2 THEN


P_DETB_RTL_TLR.MIS_HEAD_2 := P_TBL_CHGDETS(L_ROW).MIS_HEAD;
IF NVL(P_TBL_CHGDETS(L_ROW).WAIVER, 'N') = 'Y' THEN
-- FCC73ITR1 SFR 439
P_DETB_RTL_TLR.CHG_AMT_1 := 0;
ELSE
P_DETB_RTL_TLR.CHG_AMT_1 := P_TBL_CHGDETS(L_ROW).CHG_AMT;
END IF;
P_DETB_RTL_TLR.CHG_CCY_1 := P_TBL_CHGDETS(L_ROW).COD_CHG_CCY;
P_DETB_RTL_TLR.CHG_GL_1 := P_TBL_CHGDETS(L_ROW).CHG_GL;
P_DETB_RTL_TLR.TXN_CODE_1 := P_TBL_CHGDETS(L_ROW).TXN_CODE;
P_DETB_RTL_TLR.NETTING_IND_1 := NVL(P_TBL_CHGDETS(L_ROW).NETTING_IND,
'N');
ELSIF L_ROW = 3 THEN
P_DETB_RTL_TLR.MIS_HEAD_3 := P_TBL_CHGDETS(L_ROW).MIS_HEAD;
IF NVL(P_TBL_CHGDETS(L_ROW).WAIVER, 'N') = 'Y' THEN
-- FCC73ITR1 SFR 439
P_DETB_RTL_TLR.CHG_AMT_2 := 0;
ELSE
P_DETB_RTL_TLR.CHG_AMT_2 := P_TBL_CHGDETS(L_ROW).CHG_AMT;
END IF;
P_DETB_RTL_TLR.CHG_CCY_2 := P_TBL_CHGDETS(L_ROW).COD_CHG_CCY;
P_DETB_RTL_TLR.CHG_GL_2 := P_TBL_CHGDETS(L_ROW).CHG_GL;
P_DETB_RTL_TLR.TXN_CODE_2 := P_TBL_CHGDETS(L_ROW).TXN_CODE;
P_DETB_RTL_TLR.NETTING_IND_2 := NVL(P_TBL_CHGDETS(L_ROW).NETTING_IND,
'N');
ELSIF L_ROW = 4 THEN
P_DETB_RTL_TLR.MIS_HEAD_4 := P_TBL_CHGDETS(L_ROW).MIS_HEAD;
IF NVL(P_TBL_CHGDETS(L_ROW).WAIVER, 'N') = 'Y' THEN
-- FCC73ITR1 SFR 439
P_DETB_RTL_TLR.CHG_AMT_3 := 0;
ELSE
P_DETB_RTL_TLR.CHG_AMT_3 := P_TBL_CHGDETS(L_ROW).CHG_AMT;
END IF;
P_DETB_RTL_TLR.CHG_CCY_3 := P_TBL_CHGDETS(L_ROW).COD_CHG_CCY;
P_DETB_RTL_TLR.CHG_GL_3 := P_TBL_CHGDETS(L_ROW).CHG_GL;
P_DETB_RTL_TLR.TXN_CODE_3 := P_TBL_CHGDETS(L_ROW).TXN_CODE;
P_DETB_RTL_TLR.NETTING_IND_3 := NVL(P_TBL_CHGDETS(L_ROW).NETTING_IND,
'N');
ELSIF L_ROW = 5 THEN
P_DETB_RTL_TLR.MIS_HEAD_5 := P_TBL_CHGDETS(L_ROW).MIS_HEAD;
IF NVL(P_TBL_CHGDETS(L_ROW).WAIVER, 'N') = 'Y' THEN
-- FCC73ITR1 SFR 439
P_DETB_RTL_TLR.CHG_AMT_4 := 0;
ELSE
P_DETB_RTL_TLR.CHG_AMT_4 := P_TBL_CHGDETS(L_ROW).CHG_AMT;
END IF;
P_DETB_RTL_TLR.CHG_CCY_4 := P_TBL_CHGDETS(L_ROW).COD_CHG_CCY;
P_DETB_RTL_TLR.CHG_GL_4 := P_TBL_CHGDETS(L_ROW).CHG_GL;
P_DETB_RTL_TLR.TXN_CODE_4 := P_TBL_CHGDETS(L_ROW).TXN_CODE;
P_DETB_RTL_TLR.NETTING_IND_4 := NVL(P_TBL_CHGDETS(L_ROW).NETTING_IND,
'N');
END IF;
END LOOP;
DBG('Successfully finished fn_charge_superscribe');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('E',
'Exception caught in fn_charge_superscribe with sqlerrm : ' ||
SQLERRM);
P_RET := -1;
OVPKSS.PR_APPENDTBL('GW-RTL-004', NULL);
RETURN FALSE;
END FN_CHARGE_SUPERSCRIBE;
--------------------------------------------------------------
FUNCTION FN_VALIDATE_BRANCH(P_BRANCH_CODE IN VARCHAR2,
P_RET IN OUT NUMBER,
P_ERR_CODE IN OUT VARCHAR2,
P_ERR_PARAM IN OUT VARCHAR2) RETURN BOOLEAN IS
L_COUNT NUMBER := 0;
BEGIN
DBG('p_branch_code in fn_validate_branch.......... : ' ||
P_BRANCH_CODE);
BEGIN
SELECT 1
INTO L_COUNT
FROM STTMS_BRANCH
WHERE BRANCH_CODE = P_BRANCH_CODE
AND AUTH_STAT = 'A'
AND RECORD_STAT = 'O';
EXCEPTION
WHEN OTHERS THEN
DBG('In Exception while fetching branch code ' || P_BRANCH_CODE ||
' from sttms_branch with sqlerrm :' || SQLERRM);
L_COUNT := 0;
END;

IF L_COUNT <> 1 THEN


DBG('Failed while validating branch code ' || P_BRANCH_CODE || ' ' ||
SQLERRM);
P_ERR_CODE := 'DE-TUD-012';
P_RET := -1;
RETURN FALSE;
END IF;
RETURN TRUE;
END;

-----------------------------------------------------------------------------------
----
/*
FUNCTION fn_validate_acc(p_account IN VARCHAR2,
p_branch IN VARCHAR2,
p_customer OUT VARCHAR2,
p_gl_type OUT VARCHAR2,
p_currency IN OUT VARCHAR2,
p_ret IN OUT NUMBER,
p_err_code IN OUT VARCHAR2,
p_err_param IN OUT VARCHAR2)
RETURN BOOLEAN
-- tbl_sttb_account(p_index).ty_sttb_account
*/
FUNCTION FN_VALIDATE_ACC(P_TY_RETAILTLR_UPD IN OUT DETB_UPLOAD_RTL_TELLER%ROWTYPE
--typeconv detbs_rtl_teller%ROWTYPE
,
P_STTB_ACCOUNT IN OUT STTB_ACCOUNT%ROWTYPE,
P_CURRENCY IN OUT VARCHAR2,
P_RET IN OUT NUMBER,
P_ERR_CODE IN OUT VARCHAR2,
P_ERR_PARAM IN OUT VARCHAR2) RETURN BOOLEAN IS

L_HEAD_OFFICE STTMS_BRANCH.BRANCH_CODE%TYPE;
LO_HO_RES GLTMS_GLMASTER.HO_RES%TYPE;
L_LCY_REC CVPKSS_UTILS.REC_BRNLCY;
L_BRN_LCY DETBS_RTL_TELLER.TXN_CCY%TYPE;
BEGIN
DBG('Inside fn_validate_acc');
DBG('Accout No :' || P_STTB_ACCOUNT.AC_GL_NO);
DBG('Branch Code :' || P_STTB_ACCOUNT.BRANCH_CODE);

IF NOT CVPKS_UTILS.GET_STTB_ACC(P_STTB_ACCOUNT.BRANCH_CODE,
P_STTB_ACCOUNT.AC_GL_NO,
P_STTB_ACCOUNT) THEN
DBG('failed while returning from Cvpks_Utils.get_sttb_acc');
OVPKSS.PR_APPENDTBL('DE-TUD-055', NULL);
RETURN FALSE;
END IF;
DBG('after getting sttb_acc');
-----------------------
IF L_BRN_LCY IS NULL THEN
CVPKS_UTILS.GET_BRANCH_LCY(P_TY_RETAILTLR_UPD.BRANCH_CODE, L_LCY_REC);
L_BRN_LCY := L_LCY_REC.BRN_LCY;
END IF;
-----------------------
--'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
/* FCC5.4 Reverting this. To disallow Posting into Cash GL for Transctions from
Web Branch / Retail Teller.
Funda is : To be able to Post into Cash GL in FCC, youll need to attach till
to the txn, which we
dont do for txns from branch. As for tracking purposes, the bank can
always open a Normal GL,
call it cash and map this onto RT products. Also, this flag in the
product maintenance shall be
done away with.
*/
DBG('gl_aclass_type' || P_STTB_ACCOUNT.GL_ACLASS_TYPE);
DBG('auth_stat' || P_STTB_ACCOUNT.AUTH_STAT);
DBG('ac_gl_rec_status' || P_STTB_ACCOUNT.AC_GL_REC_STATUS);
IF P_STTB_ACCOUNT.GL_ACLASS_TYPE = '5' -- For cash GL
OR P_STTB_ACCOUNT.AUTH_STAT <> 'A' OR
P_STTB_ACCOUNT.AC_GL_REC_STATUS <> 'O' THEN
DBG('failed while validating gl_aclass_type for cash GL');
OVPKSS.PR_APPENDTBL('DE-TUD-055', NULL);
RETURN FALSE;
END IF;
--'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
DBG('cheking if gl');
IF P_STTB_ACCOUNT.AC_OR_GL = 'G' THEN
L_HEAD_OFFICE := GLOBAL.HEAD_OFFICE;
BEGIN
SELECT A.HO_RES
INTO LO_HO_RES
FROM GLTMS_GLMASTER A
WHERE GL_CODE = P_STTB_ACCOUNT.AC_GL_NO
AND (A.HO_RES = 'A' OR (A.HO_RES = 'B' AND (P_STTB_ACCOUNT.BRANCH_CODE
<>
L_HEAD_OFFICE)) OR (A.HO_RES = 'H' AND (P_STTB_ACCOUNT.BRANCH_CODE =
L_HEAD_OFFICE)));
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBG('E', 'failed while validating gl branch code');
OVPKSS.PR_APPENDTBL('DE-TUD-049', NULL);
RETURN FALSE;
END;

DBG('cheking if ccy_res' || P_STTB_ACCOUNT.GL_CCY_RES);


IF P_STTB_ACCOUNT.GL_CCY_RES = 'S' THEN
IF NVL(P_CURRENCY, P_STTB_ACCOUNT.AC_GL_CCY) <>
P_STTB_ACCOUNT.AC_GL_CCY THEN
OVPKSS.PR_APPENDTBL('DE-TUD-050', NULL);
RETURN FALSE;
END IF;
IF P_CURRENCY IS NULL THEN
P_CURRENCY := P_STTB_ACCOUNT.AC_GL_CCY;
END IF;
ELSIF P_STTB_ACCOUNT.GL_CCY_RES = 'F' THEN
IF P_CURRENCY = L_BRN_LCY THEN
OVPKSS.PR_APPENDTBL('DE-TUD-051', NULL);
RETURN FALSE;
END IF;

ELSIF P_STTB_ACCOUNT.GL_CCY_RES = 'A' THEN


IF P_CURRENCY IS NULL THEN
P_CURRENCY := L_BRN_LCY;
END IF;
END IF;
IF P_STTB_ACCOUNT.GL_STAT_BLOCKED = 'Y' THEN
OVPKSS.PR_APPENDTBL('AC-VGL04', NULL);
RETURN FALSE;
END IF;
------9NT1428, ITR1, SFR#418 Startz
/*
IF p_sttb_account.gl_stat_de_post = 'N'
THEN
p_err_code := 'DE-MLT44';
p_err_param := p_err_param || p_sttb_account.ac_gl_no || '~;'; --02-NOV-
2005 FCKERNEL71ITR1 SFR 413 Sanjeev Added
ovpkss.pr_appendtbl(p_err_code, p_err_param);
RETURN FALSE;
END IF;
*/
-------9NT1428, ITR1, SFR#418 Endz
END IF;

--'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

IF P_STTB_ACCOUNT.AC_OR_GL = 'A' THEN


IF NVL(P_CURRENCY, P_STTB_ACCOUNT.AC_GL_CCY) <>
P_STTB_ACCOUNT.AC_GL_CCY THEN
OVPKSS.PR_APPENDTBL('DE-TUD-053', P_ERR_PARAM);
RETURN FALSE;
END IF;

IF P_CURRENCY IS NULL THEN


P_CURRENCY := P_STTB_ACCOUNT.AC_GL_CCY;
END IF;

IF P_STTB_ACCOUNT.CUST_NO IS NULL THEN


P_STTB_ACCOUNT.CUST_NO := GLOBAL.GBRNREC.WALKIN_CUSTOMER;
END IF;

IF P_STTB_ACCOUNT.AC_OPEN_DATE >
NVL(P_TY_RETAILTLR_UPD.VALUE_DT, GLOBAL.APPLICATION_DATE) THEN
P_ERR_CODE := 'GW-RTL-019';
P_ERR_PARAM := P_ERR_PARAM || GLOBAL.APPLICATION_DATE || '~' ||
P_STTB_ACCOUNT.AC_OPEN_DATE || '~' ||
P_STTB_ACCOUNT.AC_GL_NO || '~;'; -- Added by Gururaj CM for
Kernel Testing SFR #396.
DBG('VALUE DATE1 > OPENING DATE ' || P_ERR_PARAM);
OVPKSS.PR_APPENDTBL(P_ERR_CODE, P_ERR_PARAM);
RETURN FALSE;
END IF;
ELSE
IF P_CURRENCY IS NULL THEN
OVPKSS.PR_APPENDTBL('DE-TUD-026', NULL);
RETURN FALSE;
END IF;
END IF;
--'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
DBG('Successfully finished fn_validate_acc for ' ||
P_STTB_ACCOUNT.AC_GL_NO);
RETURN TRUE;
-------------------------------
EXCEPTION
WHEN OTHERS THEN
DBG('E',
'In exception while calling fn_validate_acc for ' ||
P_STTB_ACCOUNT.AC_GL_NO || ' with sqlerrm :' || SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-002', NULL);
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_ACC;
-------------------------------
-- FCC73ITR2 SFR 58 Start
FUNCTION FN_DEFAULT_FT_VALUES(P_TY_RETAIL_TELLER IN OUT DETBS_RTL_TELLER%ROWTYPE
--typeconv typ_retail_teller_rec
,
P_ARC_SETTLE IN OUT CSTBS_ARC_SETTLE%ROWTYPE,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS
L_ARC_SETTLE CSTMS_ARC_SETTLE%ROWTYPE;
L_ROUTECODE DETBS_RTL_TELLER.ROUTE_CODE%TYPE;
BEGIN
DBG('Inside fn_default_FT_values....');
L_ROUTECODE := P_TY_RETAIL_TELLER.ROUTE_CODE;
DBG('Received route code as ' || L_ROUTECODE);
IF L_ROUTECODE IS NULL THEN
IF L_ROUTECODE IS NULL THEN
PR_RESOLVE_ROUTE(P_ARC_SETTLE.ACC_WITH_INSTN1,
P_TY_RETAIL_TELLER.TXN_CCY,
P_TY_RETAIL_TELLER.BRANCH_CODE,
P_ARC_SETTLE.COUNTRY_CODE,
L_ROUTECODE);
END IF;
IF L_ROUTECODE IS NULL THEN
DBG('FT Problem');
OVPKSS.PR_APPENDTBL('FTARC001', NULL);
DBG('Could not resolve Transfer Route.');
P_RET := -1;
RETURN FALSE;
ELSE
DBG('Resolved route as ' || L_ROUTECODE);
END IF;
END IF;
-----------
BEGIN
SELECT *
INTO L_ARC_SETTLE
FROM CSTM_ARC_SETTLE
WHERE ROUTE_CODE = L_ROUTECODE;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
--p_ty_retail_teller.route_code := l_arc_settle.route_code; ----typeconv and
added
P_ARC_SETTLE.ROUTE_CODE := L_ROUTECODE;

/*IF p_ty_retail_teller.product_code IS NULL


THEN
p_ty_retail_teller.product_code := l_arc_settle.product_code;
ELSE
dbg('E', 'Product code is not null');
ovpkss.pr_appendTbl('GW-RTL-016', 'PRODUCT');
END IF;
IF p_ty_retail_teller.ofs_branch IS NULL
THEN
p_ty_retail_teller.ofs_branch := l_arc_settle.credit_account_branch;
ELSE
dbg('E', 'Offset Branch is not null');
ovpkss.pr_appendTbl('GW-RTL-016', 'Offset Branch Code');
END IF;
IF p_ty_retail_teller.ofs_acc IS NULL
THEN
p_ty_retail_teller.ofs_acc := l_arc_settle.credit_account;
ELSE
dbg('E', 'Offset Branch is not null');
ovpkss.pr_appendTbl('GW-RTL-016', 'Offset Account');
END IF; */ --sajeer tempfix
-------------------------------
IF FN_IS_AN_ERROR_RAISED(P_RET) THEN
DBG('E', 'Error found in function fn_default_FT_values..');
RETURN FALSE;
END IF;
-------------------------------
DBG('Successfully completed fn_default_FT_values.');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
NULL;
DBG('E',
'in exception while executing fn_mandatory_check....thus returning
false.');
P_RET := -1;
RETURN FALSE;
END FN_DEFAULT_FT_VALUES;
-- FCC73ITR2 SFR 58 end
------------------------------------------------
FUNCTION FN_MANDATORY_CHECK(P_RTL_TLR_UPD IN OUT DETB_UPLOAD_RTL_TELLER%ROWTYPE
--typeconv detbs_rtl_teller%ROWTYPE
,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS

BEGIN

/*IF p_rtl_tlr_upd.xref IS NULL


THEN
dbg('E',
'in fn_mandatory_check: failed while validating xref : xref is null');
ovpkss.pr_appendtbl('DE-RTL03', NULL);
END IF; */ --FCUBS10.0.1
-------------------------------
IF P_RTL_TLR_UPD.BRANCH_CODE IS NULL THEN
DBG('E',
'in fn_mandatory_check: failed while validating branch_code : branch_code
is NULL');
OVPKSS.PR_APPENDTBL('DE-TUD-011', NULL);
END IF;
-------------------------------
IF P_RTL_TLR_UPD.PRODUCT_CODE IS NULL THEN
DBG('E',
'in fn_mandatory_check: failed while validating product_code :
product_code is null');
OVPKSS.PR_APPENDTBL('DE-TUD-071', NULL);
END IF;
-------------------------------
/*IF p_ty_retailtlr_upd.txn_ccy IS NULL
THEN
dbg('E','in fn_mandatory_check: failed while validating txn_ccy : txn_ccy is
NULL');
ovpkss.pr_appendtbl('DE-TUD-026', NULL);
END IF;
-------------------------------
IF p_ty_retailtlr_upd.ofs_ccy IS NULL
THEN
dbg('E','fn_mandatory_check: failed while validating ofs_ccy : ofs_ccy is
NULL');
ovpkss.pr_appendtbl('DE-TUD-027', NULL);
END IF;*/
-------------------------------
DBG('p_ty_retailtlr_upd.txn_amount :' || P_RTL_TLR_UPD.TXN_AMOUNT);
DBG('p_ty_retailtlr_upd.ofs_amount :' || P_RTL_TLR_UPD.OFS_AMOUNT);
DBG('p_rtl_tlr_upd.scode :' || P_RTL_TLR_UPD.SCODE);
IF P_RTL_TLR_UPD.SCODE <> 'FLEXSWITCH' THEN
--10.3 IVR Change
-- For SWITCH , if non-fin txn has to be charged .. both amounts comes as
null and only charge comes
IF P_RTL_TLR_UPD.TXN_AMOUNT IS NULL AND
P_RTL_TLR_UPD.OFS_AMOUNT IS NULL THEN
DBG('E',
'in fn_mandatory_check: failed while validating txn_amount : txn_amount
and ofs_amount both are NULL');
OVPKSS.PR_APPENDTBL('DE-TUD-023', NULL);
END IF;
END IF;
-------------------------------
IF FN_IS_AN_ERROR_RAISED(P_RET) THEN
DBG('E', 'Error found in function fn_mandatory_check..');
RETURN FALSE;
END IF;
-------------------------------
DBG('Successfully finished fn_mandatory_check');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
NULL;
DBG('E',
'in exception while executing fn_mandatory_check....thus returning
false.');
P_RET := -1;
RETURN FALSE;
END FN_MANDATORY_CHECK;
------------------------------------------------
FUNCTION FN_VALIDATE_CHG_CCY(P_CHG_CCY IN DETBS_RTL_TELLER.TXN_CCY%TYPE,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS
L_CNT NUMBER := 0;
BEGIN
DBG('Inside fn_validate_chg_ccy...');
BEGIN
SELECT COUNT(*)
INTO L_CNT
FROM CYTMS_CCY_DEFN
WHERE CCY_CODE = P_CHG_CCY
AND RECORD_STAT = 'O'
AND AUTH_STAT = 'A';
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBG('E',
'Exception caught in fn_validate_txn_ccy with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001',
P_CHG_CCY || '~' || 'Charge Ccy' || '~');
P_RET := -1;
RETURN FALSE;
END;
DBG('Successfully finished fn_validate_chg_ccy');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_txn_ccy with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001',
P_CHG_CCY || '~' || 'Charge Ccy' || '~');
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_CHG_CCY;
------------------------------------------------
FUNCTION FN_VALIDATE_MIS_HEAD(P_MIS_HEAD IN MITMS_MIS_HEAD.MIS_HEAD%TYPE,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS
L_CNT NUMBER := 0;
BEGIN
DBG('Inside fn_validate_mis_head...');
BEGIN
SELECT 1
INTO L_CNT
FROM MITMS_MIS_HEAD
WHERE MIS_HEAD = P_MIS_HEAD
AND AUTH_STAT = 'A'
AND RECORD_STAT = 'O';
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBG('E',
'Exception caught in fn_validate_mis_head with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001',
P_MIS_HEAD || '~' || 'MIS Head' || '~');
P_RET := -1;
RETURN FALSE;
END;
DBG('Successfully finished fn_validate_mis_head');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_mis_head with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001',
P_MIS_HEAD || '~' || 'MIS Head' || '~');
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_MIS_HEAD;
--fn_validate_txn_code
------------------------------------------------
FUNCTION FN_VALIDATE_TXN_CODE(P_TXN_CODE IN STTMS_TRN_CODE.TRN_CODE%TYPE,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS
L_CNT NUMBER := 0;
BEGIN
DBG('Inside fn_validate_txn_code...');
BEGIN
SELECT 1
INTO L_CNT
FROM STTMS_TRN_CODE
WHERE TRN_CODE = P_TXN_CODE
AND AUTH_STAT = 'A'
AND RECORD_STAT = 'O';
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBG('E',
'Exception caught in fn_validate_txn_code with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001',
P_TXN_CODE || '~' || 'TXN Code' || '~');
P_RET := -1;
RETURN FALSE;
END;
DBG('Successfully finished fn_validate_txn_code');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_txn_code with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001',
P_TXN_CODE || '~' || 'TXN Code' || '~');
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_TXN_CODE;
------------------------------------------------
--fn_validate_chg_GL
FUNCTION FN_VALIDATE_CHG_GL(P_CHG_GL IN STTBS_ACCOUNT.AC_GL_NO%TYPE,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS
L_CNT NUMBER := 0;
BEGIN
DBG('Inside fn_validate_chg_GL...');
BEGIN
SELECT 1
INTO L_CNT
FROM STTBS_ACCOUNT
WHERE AC_GL_NO = P_CHG_GL
AND AUTH_STAT = 'A'
AND AC_GL_CCY IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBG('E',
'Exception caught in fn_validate_chg_GL with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001',
P_CHG_GL || '~' || 'Charge GL' || '~');
P_RET := -1;
RETURN FALSE;
END;
DBG('Successfully finished fn_validate_chg_GL');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_chg_GL with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001',
P_CHG_GL || '~' || 'Charge GL' || '~');
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_CHG_GL;
------------------------------------------------
FUNCTION FN_VALIDATE_TXN_CCY(P_DETB_RTL_TLR IN DETBS_RTL_TELLER%ROWTYPE,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS
L_CNT NUMBER := 0;
BEGIN
DBG('Inside fn_validate_txn_ccy...');
BEGIN
SELECT 1
INTO L_CNT
FROM CYTMS_CCY_DEFN
WHERE CCY_CODE = P_DETB_RTL_TLR.TXN_CCY
AND RECORD_STAT = 'O'
AND AUTH_STAT = 'A';
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBG('Exception caught in fn_validate_txn_ccy with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001',
P_DETB_RTL_TLR.TXN_CCY || '~' ||
'Transaction Ccy' || '~');
RETURN FALSE;
END;

RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_txn_ccy with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001',
P_DETB_RTL_TLR.TXN_CCY || '~' ||
'Transaction Ccy' || '~');
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_TXN_CCY;
------------------------------------------------
FUNCTION FN_VALIDATE_OFS_CCY(P_DETB_RTL_TLR IN DETBS_RTL_TELLER%ROWTYPE,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS
L_CNT NUMBER := 0;
BEGIN
DBG('Inside fn_validate_txn_ccy...');
BEGIN
SELECT 1
INTO L_CNT
FROM CYTMS_CCY_DEFN
WHERE CCY_CODE = P_DETB_RTL_TLR.OFS_CCY
AND RECORD_STAT = 'O'
AND AUTH_STAT = 'A';
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBG('Exception caught in fn_validate_txn_ccy with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001',
P_DETB_RTL_TLR.OFS_CCY || '~' || 'Offset Ccy' || '~');
RETURN FALSE;
END;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_ofs_ccy with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001',
P_DETB_RTL_TLR.OFS_CCY || '~' || 'Offset Ccy' || '~');
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_OFS_CCY;
------------------------------------------------
-- FCC73ITR1 SFR 319 Start
FUNCTION FN_VALIDATE_XREF_NO(P_XREF_NO IN DETBS_RTL_TELLER.XREF%TYPE,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS

L_ERR_CODE ERTBS_MSGS.ERR_CODE%TYPE;
L_ERR_PARAM VARCHAR2(200);
L_COUNT NUMBER := 0;
BEGIN
DBG('Inside fn_validate_xref_no...');
SELECT COUNT(1)
INTO L_COUNT
FROM DETB_RTL_TELLER
WHERE XREF = P_XREF_NO;
IF L_COUNT <> 0 THEN
DBG('duplicate xref found for xref : ' || P_XREF_NO);
OVPKSS.PR_APPENDTBL('GW-RTL-008', P_XREF_NO || '~');
P_RET := -1;
RETURN FALSE;
END IF;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_branch_code with : ' || SQLCODE || ':'
||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001', P_XREF_NO || '~');
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_XREF_NO;
-- FCC73ITR1 SFR 319 End
------------------------------------------------
-- VIRTUAL ACCOUNT CHANGE starts
FUNCTION FN_VALIDATE_VIRTUAL_ACC(P_VIR_ACC_NO IN DETBS_RTL_TELLER.VIR_ACC_NO
%TYPE,
P_DR_VIR_ACC_NO IN DETBS_RTL_TELLER.VIR_ACC_NO
%TYPE, --Parul Changes
--p_ty_upld_Rec DETB_UPLOAD_RTL_TELLER
%ROWTYPE,-- 1203_ITR1_18380572
P_TY_UPLD_REC IN OUT DETB_UPLOAD_RTL_TELLER
%ROWTYPE, -- 1203_ITR1_18380572
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS

L_ERR_CODE ERTBS_MSGS.ERR_CODE%TYPE;
L_ERR_PARAM VARCHAR2(200);
-- l_vir_acc_no sttm_virtual_accounts.vir_acc_no%TYPE; -- Defect 2703
changes
L_VIR_ACC_NAME STTM_VIRTUAL_ACCOUNTS.VIR_ACC_NAME%TYPE; -- Defect 2703
changes
L_DR_VIR_ACC_NAME STTM_VIRTUAL_ACCOUNTS.VIR_ACC_NAME%TYPE; -- Parul Changes
L_SCR_VIR_ACC_NO STTM_VIRTUAL_ACCOUNTS.VIR_ACC_NO%TYPE;
L_SCR_VIR_TXN_CCY VARCHAR2(3);
L_ACTUAL_ACC_CCY VARCHAR2(3);
L_CUST_AC_NO STTM_CUST_ACCOUNT.CUST_AC_NO%TYPE;
L_DR_CUST_AC_NO STTM_CUST_ACCOUNT.CUST_AC_NO%TYPE;-- Parul Changes
L_BRANCH_CODE STTM_CUST_ACCOUNT.BRANCH_CODE%TYPE;
L_IS_VIRTUAL_ACC VARCHAR2(1) := 'N';
L_COUNT NUMBER := 0;
L_CCY VARCHAR2(3);
L_AC_OPEN_DT DATE;
L_STATUS VARCHAR2(1);
L_FLEXSWITCH_VIR BOOLEAN := FALSE; -- 1203_ITR1_18380572
-- Virtual Account Validation changes added starts
L_DEF_CCY VARCHAR2(3);
L_PHY_ACC STTM_VIRTUAL_ACCOUNTS.PHY_ACC%TYPE;
L_CNT1 NUMBER := 0;
L_TMP_CCY VARCHAR2(3);
L_CNT2 NUMBER := 0;
L_CNT3 NUMBER := 0;
-- Virtual Account Validation changes added ends
BEGIN

DBG('Inside fn_validate_vitual_acc ...');


DBG(' The virtual account here is ----> ' || P_VIR_ACC_NO);
DBG(' The virtual account here is ----> ' || P_DR_VIR_ACC_NO);-- Parul Changes
DBG(' The p_ty_upld_Rec.Ofs_Ccy here is ----> ' ||
P_TY_UPLD_REC.OFS_CCY);
DBG(' The p_ty_upld_Rec.Ofs_Branch here is ----> ' ||
P_TY_UPLD_REC.OFS_BRANCH);
DBG(' The p_ty_upld_Rec.ofs_acc here is ----> ' ||
P_TY_UPLD_REC.OFS_ACC);
DBG(' The p_ty_upld_Rec.txn_ccy here is ----> ' ||
P_TY_UPLD_REC.TXN_CCY);
DBG(' The p_ty_upld_Rec.txn_branch here is ----> ' ||
P_TY_UPLD_REC.TXN_BRANCH);
DBG(' The p_ty_upld_Rec.txn_acc here is ----> ' ||
P_TY_UPLD_REC.TXN_ACC);

-- 1203_ITR1_18380572 STARTS
IF P_TY_UPLD_REC.SCODE = 'FLEXSWITCH' AND P_VIR_ACC_NO IS NOT NULL AND
P_TY_UPLD_REC.OFS_ACC IS NULL THEN
DBG('Came here when source is FLEXSWITCH');
L_FLEXSWITCH_VIR := TRUE;
L_CCY := G_VIRACCNO_CCY;
DBG('l_ccy :::: ' || L_CCY);
END IF;
-- 1203_ITR1_18380572 ENDS
IF P_TY_UPLD_REC.SCODE <> 'FLEXSWITCH' THEN
-- 1203_ITR1_18380572
-- Virtual Account Validation changes commented starts
/*
IF ( --nvl(gwpks_util.pkg_func, '***') = '1401' OR --After discuusion with
Donald if tran curency BHD and V/A account cccy is AED then it should convert
--Ankit changes because of 8207 transaction wil be tran so moved this in
other if
-- nvl(gwpks_util.pkg_func, '***') = '8207' OR
nvl(gwpks_util.pkg_func, '***') = '1006')
THEN
l_ccy := p_ty_upld_rec.ofs_ccy;
dbg('l_ccy after assign' || l_ccy);
END IF;

IF (nvl(gwpks_util.pkg_func, '***') = '1408'


--OR nvl(gwpks_util.pkg_func, '***') = '8207' ---Ankit chnages for virtual
8207 screen
OR nvl(gwpks_util.pkg_func, '***') = '1401' --After discuusion with Donald
if tran curency BHD and V/A account cccy is AED then it should convert
)
THEN
l_ccy := p_ty_upld_rec.txn_ccy;
dbg('l_ccy after assign111 ' || l_ccy);
END IF;
*/
-- Virtual Account Validation changes commented ends
-- Virtual Account Validation changes added starts
IF NVL(GWPKS_UTIL.PKG_FUNC, '***') IN ('1401', '1408', '1006') THEN
IF NVL(GWPKS_UTIL.PKG_FUNC, '***') = '1006' THEN
L_CCY := P_TY_UPLD_REC.OFS_CCY;
DBG('l_ccy after assign' || L_CCY);
ELSE
L_CCY := P_TY_UPLD_REC.TXN_CCY;
DBG('l_ccy after assign111 ' || L_CCY);
END IF;

SELECT COUNT(1)
INTO L_CNT2
FROM STTM_VIRTUAL_ACCOUNTS
WHERE VIR_ACC_NO = P_VIR_ACC_NO
AND RECORD_STAT = 'O'
AND AUTH_STAT = 'A';
DBG('l_cnt2 := ' || L_CNT2);

IF L_CNT2 > 0 THEN

IF NVL(GWPKS_UTIL.PKG_FUNC, '***') = '1401' THEN


L_TMP_CCY := P_TY_UPLD_REC.OFS_CCY;
DBG('l_tmp_ccy after assign' || L_TMP_CCY);
ELSIF NVL(GWPKS_UTIL.PKG_FUNC, '***') = '1408' THEN
L_TMP_CCY := P_TY_UPLD_REC.TXN_CCY;
DBG('l_tmp_ccy after assign111' || L_TMP_CCY);
ELSIF NVL(GWPKS_UTIL.PKG_FUNC, '***') = '1006' THEN
L_TMP_CCY := P_TY_UPLD_REC.TXN_CCY;
DBG('l_tmp_ccy after assign222' || L_TMP_CCY);
SELECT COUNT(1)
INTO L_CNT3
FROM STTM_VIRTUAL_ACCOUNTS
WHERE VIR_ACC_NO = P_VIR_ACC_NO
AND CCY = L_TMP_CCY
AND AUTH_STAT = 'A'
AND RECORD_STAT = 'C';
IF L_CNT3 > 0 THEN
OVPKSS.PR_APPENDTBL('ST-VALS-057', P_VIR_ACC_NO);
END IF;
END IF;

IF P_TY_UPLD_REC.TXN_CCY <> P_TY_UPLD_REC.OFS_CCY THEN


DBG('Inside if of ofs ccy <> txn ccy');
L_CNT1 := 0;
SELECT COUNT(1)
INTO L_CNT1
FROM STTM_VIRTUAL_ACCOUNTS
WHERE VIR_ACC_NO = P_VIR_ACC_NO
AND CCY = L_TMP_CCY
AND AUTH_STAT = 'A'
AND RECORD_STAT = 'O';
DBG('l_cnt1 = ' || L_CNT1);
IF L_CNT1 = 0 THEN
BEGIN
DBG('Inside if of l_cnt1 = 0');
SELECT PHY_ACC, CCY
INTO L_PHY_ACC, L_DEF_CCY
FROM STTM_VIRTUAL_ACCOUNTS
WHERE VIR_ACC_NO = P_VIR_ACC_NO
AND DEFAULT_VIR = 'Y'
AND RECORD_STAT = 'O'
AND AUTH_STAT = 'A';
EXCEPTION
WHEN OTHERS THEN
DBG('Inside exception of phyacc and def ccy');
L_PHY_ACC := P_TY_UPLD_REC.TXN_ACC;
L_DEF_CCY := L_CCY;
END;
-- OVPKSS.PR_APPENDTBL('ST-VIR-028', NULL); -- Virtual Account
changes commented
-- IF NVL(GWPKS_UTIL.PKG_FUNC, '***') IN ('1006', '1401') THEN --
Virtual Account changes commented
IF NVL(GWPKS_UTIL.PKG_FUNC, '***') IN ('1006') THEN
-- Virtual Account changes added starts
DBG('Inside if of 1006');
P_TY_UPLD_REC.OFS_ACC := L_PHY_ACC;
P_TY_UPLD_REC.OFS_CCY := L_DEF_CCY;
L_CCY := L_DEF_CCY;
ELSE
DBG('Inside else of 1006');
P_TY_UPLD_REC.TXN_ACC := L_PHY_ACC;
P_TY_UPLD_REC.TXN_CCY := L_DEF_CCY;
L_CCY := L_DEF_CCY;
-- Virtual Account changes added ends
END IF;
DBG('Phy acc := ' || L_PHY_ACC || ' and def ccy := ' ||
L_DEF_CCY);
ELSE
DBG('Inside Else');
L_ERR_CODE := 'ST-VIR-022';
L_ERR_PARAM := NULL;
OVPKS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;
END IF;
END IF;
END IF;
-- Virtual Account Validation changes added ends

BEGIN
SELECT COUNT(*)
INTO L_COUNT
FROM STTM_VIRTUAL_ACCOUNTS
WHERE VIR_ACC_NO = P_VIR_ACC_NO
AND CCY = L_CCY;
EXCEPTION
WHEN OTHERS THEN
DBG('In Exception: STTM_VIRTUAL_ACCOUNTS ' || P_VIR_ACC_NO);
END;
DBG('count is ---- > ' || L_COUNT);
DBG(' txn acc is ---- > ' || P_TY_UPLD_REC.TXN_ACC);
DBG(' ofs acc is ---- > ' || P_TY_UPLD_REC.OFS_ACC);

IF L_COUNT > 0 THEN


BEGIN
SELECT VIR_ACC_OPEN_DT, STATUS
INTO L_AC_OPEN_DT, L_STATUS
FROM STTM_VIRTUAL_ACCOUNTS
WHERE VIR_ACC_NO = P_VIR_ACC_NO
AND CCY = L_CCY
AND RECORD_STAT = 'O'
AND ONCE_AUTH = 'Y';
EXCEPTION
WHEN OTHERS THEN
DBG('In Exception: STTM_VIRTUAL_ACCOUNTS ' || P_VIR_ACC_NO);
L_ERR_CODE := 'ST-VIR-100';
L_ERR_PARAM := NULL;
OVPKS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
END;
DBG(' about to validate acc opening date ');
IF L_AC_OPEN_DT > GLOBAL.APPLICATION_DATE THEN
L_ERR_CODE := 'ST-VIR-020';
L_ERR_PARAM := NULL;
OVPKS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
END IF;
DBG('status of virtual acc iss ' || L_STATUS);
--When doing cash deposit to Inactive Virtual Account
/* IF l_status = 'I' THEN
l_Err_Code := 'ST-VIR-011';
l_Err_Param := NULL;
ovpks.Pr_Appendtbl(l_Err_Code, l_Err_Param);
END IF;*/
END IF;
END IF; -- 1203_ITR1_18380572
-- 1203_ITR1_18380572 STARTS
IF (L_COUNT > 0 AND
(P_TY_UPLD_REC.TXN_ACC IS NULL OR P_TY_UPLD_REC.OFS_ACC IS NULL) OR
P_TY_UPLD_REC.SCODE = 'FLEXBRANCH' -- 3971 CHANGES STARTS
) OR (L_FLEXSWITCH_VIR) THEN
/* IF l_count > 0 AND
(p_ty_upld_Rec.TXN_ACC IS NULL OR p_ty_upld_Rec.OFS_ACC IS NULL)
THEN*/
-- 1203_ITR1_18380572 ENDS
DBG(' going to resolve the virtual account as basic checks are done ');
IF NOT STPKS_VIRTUALACC_UTILS.FN_RESOLVE_VIR_ACC(P_VIR_ACC_NO,
L_CCY,
L_BRANCH_CODE,
L_CUST_AC_NO,
-- l_vir_acc_no, -- Defect
2703 changes
L_VIR_ACC_NAME, -- Defect
2703 changes
L_IS_VIRTUAL_ACC,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('p_err_code :::::: ' || L_ERR_CODE ||
'::::: l_err_param ::::: ' || L_ERR_PARAM);
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
ROLLBACK TO BEFORE_UPLOAD;
RETURN FALSE;
ELSE
DBG('l_cust_ac_no is ->' || L_CUST_AC_NO);
DBG('Returned successfully from fn_resolve_vir_acc' || L_ERR_PARAM ||
L_CUST_AC_NO);
IF L_ERR_CODE IS NOT NULL THEN
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;
--p_ty_upld_Rec.txn_acc := l_cust_ac_no;
DBG('p_ty_upld_Rec.Xref' || P_TY_UPLD_REC.XREF);
END IF;

END IF;

-- Parul Changes Starts


DBG('P_DR_VIR_ACC_NO-'||P_DR_VIR_ACC_NO);
IF P_DR_VIR_ACC_NO IS NOT NULL AND P_TY_UPLD_REC.SCODE <> 'FLEXSWITCH' THEN

-- Virtual Account Validation changes commented ends


-- Virtual Account Validation changes added starts
IF NVL(GWPKS_UTIL.PKG_FUNC, '***') IN ( '1006') THEN
IF NVL(GWPKS_UTIL.PKG_FUNC, '***') = '1006' THEN
L_CCY := P_TY_UPLD_REC.TXN_CCY;
DBG('l_ccy after assign111 ' || L_CCY);
END IF;

SELECT COUNT(1)
INTO L_CNT2
FROM STTM_VIRTUAL_ACCOUNTS
WHERE VIR_ACC_NO = P_DR_VIR_ACC_NO
AND RECORD_STAT = 'O'
AND AUTH_STAT = 'A';
DBG('l_cnt2 := ' || L_CNT2);

IF L_CNT2 > 0 THEN

IF NVL(GWPKS_UTIL.PKG_FUNC, '***') = '1006' THEN


L_TMP_CCY := P_TY_UPLD_REC.OFS_CCY;
DBG('l_tmp_ccy after assign222' || L_TMP_CCY);
SELECT COUNT(1)
INTO L_CNT3
FROM STTM_VIRTUAL_ACCOUNTS
WHERE VIR_ACC_NO = P_DR_VIR_ACC_NO
AND CCY = L_TMP_CCY
AND AUTH_STAT = 'A'
AND RECORD_STAT = 'C';
IF L_CNT3 > 0 THEN
OVPKSS.PR_APPENDTBL('ST-VALS-057', P_DR_VIR_ACC_NO);
END IF;
END IF;

IF P_TY_UPLD_REC.TXN_CCY <> P_TY_UPLD_REC.OFS_CCY THEN

DBG('Inside if of ofs ccy <> txn ccy');


L_CNT1 := 0;
SELECT COUNT(1)
INTO L_CNT1
FROM STTM_VIRTUAL_ACCOUNTS
WHERE VIR_ACC_NO = P_DR_VIR_ACC_NO
AND CCY = L_TMP_CCY
AND AUTH_STAT = 'A'
AND RECORD_STAT = 'O';
DBG('l_cnt1 = ' || L_CNT1);
IF L_CNT1 = 0 THEN
BEGIN
DBG('Inside if of l_cnt1 = 0');
SELECT PHY_ACC, CCY
INTO L_PHY_ACC, L_DEF_CCY
FROM STTM_VIRTUAL_ACCOUNTS
WHERE VIR_ACC_NO = P_DR_VIR_ACC_NO
AND DEFAULT_VIR = 'Y'
AND RECORD_STAT = 'O'
AND AUTH_STAT = 'A';
EXCEPTION
WHEN OTHERS THEN
DBG('Inside exception of phyacc and def ccy');
L_PHY_ACC := P_TY_UPLD_REC.TXN_ACC;
L_DEF_CCY := L_CCY;
END;
-- OVPKSS.PR_APPENDTBL('ST-VIR-028', NULL); -- Virtual Account
changes commented
-- IF NVL(GWPKS_UTIL.PKG_FUNC, '***') IN ('1006', '1401') THEN --
Virtual Account changes commented
IF NVL(GWPKS_UTIL.PKG_FUNC, '***') IN ('1006') THEN
-- Virtual Account changes added starts
DBG('Inside if of 1006');
P_TY_UPLD_REC.TXN_ACC := L_PHY_ACC;
P_TY_UPLD_REC.TXN_CCY := L_DEF_CCY;
L_CCY := L_DEF_CCY;
END IF;
DBG('Phy acc := ' || L_PHY_ACC || ' and def ccy := ' ||
L_DEF_CCY);
ELSE
DBG('Inside Else');
L_ERR_CODE := 'ST-VIR-022';
L_ERR_PARAM := NULL;
OVPKS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;
END IF;
END IF;
END IF;
-- Virtual Account Validation changes added ends

BEGIN
SELECT COUNT(*)
INTO L_COUNT
FROM STTM_VIRTUAL_ACCOUNTS
WHERE VIR_ACC_NO = P_DR_VIR_ACC_NO
AND CCY = L_CCY;
EXCEPTION
WHEN OTHERS THEN
DBG('In Exception: STTM_VIRTUAL_ACCOUNTS ' || P_DR_VIR_ACC_NO);
END;
DBG('count is ---- > ' || L_COUNT);
DBG(' txn acc is ---- > ' || P_TY_UPLD_REC.TXN_ACC);
DBG(' ofs acc is ---- > ' || P_TY_UPLD_REC.OFS_ACC);

IF L_COUNT > 0 THEN


BEGIN
SELECT VIR_ACC_OPEN_DT, STATUS
INTO L_AC_OPEN_DT, L_STATUS
FROM STTM_VIRTUAL_ACCOUNTS
WHERE VIR_ACC_NO = P_DR_VIR_ACC_NO
AND CCY = L_CCY
AND RECORD_STAT = 'O'
AND ONCE_AUTH = 'Y';
EXCEPTION
WHEN OTHERS THEN
DBG('In Exception: STTM_VIRTUAL_ACCOUNTS ' || P_DR_VIR_ACC_NO);
L_ERR_CODE := 'ST-VIR-100';
L_ERR_PARAM := NULL;
OVPKS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
END;
DBG(' about to validate acc opening date ');
IF L_AC_OPEN_DT > GLOBAL.APPLICATION_DATE THEN
L_ERR_CODE := 'ST-VIR-020';
L_ERR_PARAM := NULL;
OVPKS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
END IF;
DBG('status of virtual acc iss ' || L_STATUS);

DBG(' going to resolve the virtual account as basic checks are done ');
IF NOT STPKS_VIRTUALACC_UTILS.FN_RESOLVE_VIR_ACC(P_DR_VIR_ACC_NO,
L_CCY,
L_BRANCH_CODE,
L_DR_CUST_AC_NO,
-- l_vir_acc_no, -- Defect
2703 changes
L_DR_VIR_ACC_NAME, -- Defect
2703 changes
L_IS_VIRTUAL_ACC,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('p_err_code :::::: ' || L_ERR_CODE ||
'::::: l_err_param ::::: ' || L_ERR_PARAM);
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
ROLLBACK TO BEFORE_UPLOAD;
RETURN FALSE;
ELSE
DBG('l_cust_ac_no is ->' || L_CUST_AC_NO);
DBG('Returned successfully from fn_resolve_vir_acc' || L_ERR_PARAM ||
L_CUST_AC_NO);
IF L_ERR_CODE IS NOT NULL THEN
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;
--p_ty_upld_Rec.txn_acc := l_cust_ac_no;
DBG('p_ty_upld_Rec.Xref' || P_TY_UPLD_REC.XREF);
-- END IF;

END IF;
END IF;

IF GWPKS_UTIL.PKG_FUNC IN ('1006') AND


CSPKS_REQ_GLOBAL.G_HEADER('ACTION') IN ('INPUT', 'ENRICH') THEN
P_TY_UPLD_REC.TXN_ACC := L_DR_CUST_AC_NO;
-- p_ty_upld_Rec.Ofs_Branch := l_branch_code;
IF L_DR_CUST_AC_NO IS NULL THEN
DBG('If l_cust_ac_no is null 1006 g_drviraccno' || G_DRVIRACCNO);

P_TY_UPLD_REC.TXN_ACC := G_DRVIRACCNO;
DBG('if txn_branch l_branch_code ' || L_BRANCH_CODE);
-- p_ty_upld_Rec.Ofs_Branch := l_branch_code;
DBG('p_ty_upld_Rec.txn_Branch' || P_TY_UPLD_REC.TXN_BRANCH);
END IF;
DBG('p_ty_upld_Rec.txn_acc set for switch is ' ||
P_TY_UPLD_REC.TXN_ACC);
DBG('p_ty_upld_Rec.txn_Branch set for switch is ' ||
P_TY_UPLD_REC.TXN_BRANCH);
END IF;

END IF;

-- Parul Changes Ends

-- 1203_ITR1_18380572 STARTS
IF (L_FLEXSWITCH_VIR) THEN
P_TY_UPLD_REC.OFS_ACC := L_CUST_AC_NO;
P_TY_UPLD_REC.OFS_BRANCH := L_BRANCH_CODE;
-- Code added by Niraj Start
--FCUBS_11_2_WB_Virtual Accounts start
IF L_IS_VIRTUAL_ACC = 'Y' THEN
DBG('INSIDE MY CODE NIRAJ ');
P_TY_UPLD_REC.OFS_CCY := L_CCY;
DBG(' p_ty_upld_Rec.ofs_cc ->' || P_TY_UPLD_REC.OFS_CCY);
P_TY_UPLD_REC.TXN_AMOUNT := P_TY_UPLD_REC.OFS_AMOUNT;
DBG(' p_ty_upld_Rec.txn_amount ->' || P_TY_UPLD_REC.TXN_AMOUNT);
P_TY_UPLD_REC.OFS_AMOUNT := NULL;
END IF;
-- Code added by Niraj End
--FCUBS_11_2_WB_Virtual Accounts end
DBG('p_ty_upld_Rec.ofs_acc set for switch is ' ||
P_TY_UPLD_REC.OFS_ACC);
DBG('p_ty_upld_Rec.Ofs_Branch set for switch is ' ||
P_TY_UPLD_REC.OFS_BRANCH);
END IF;
-- 1203_ITR1_18380572 ENDS
--Ankit start
DBG('Function id is->' || GWPKS_UTIL.PKG_FUNC);
-- Virtual Account changes temporarily commented
/*
IF GWPKS_UTIL.PKG_FUNC IN ('1401', '1408') AND -- ,'8207') AND
CSPKS_REQ_GLOBAL.G_HEADER('ACTION') IN ('INPUT', 'ENRICH') -- IN
('1006','1408','1401','8207')
THEN
-- P_TY_UPLD_REC.TXN_ACC := L_CUST_AC_NO;
P_TY_UPLD_REC.OFS_BRANCH := L_BRANCH_CODE;
IF L_CUST_AC_NO IS NULL THEN
DBG('If l_cust_ac_no is null g_viraccno' || G_VIRACCNO);
P_TY_UPLD_REC.TXN_ACC := G_VIRACCNO;
END IF;
DBG('l_cust_ac_no if virtual is not present' || L_CUST_AC_NO);
DBG('p_ty_upld_Rec.ofs_acc for 1401,1408,8207 ' ||
P_TY_UPLD_REC.OFS_ACC);
DBG('p_ty_upld_Rec.Ofs_Branch set for switch is ' ||
P_TY_UPLD_REC.OFS_BRANCH);
END IF;
*/
-- Virtual Account changes temporarily commented
-- Virtual Account changes added below starts
--IF GWPKS_UTIL.PKG_FUNC IN ('1401', '1408') AND --Gourab@06sep2016 changes
<<added 1408 also>>
-- IF GWPKS_UTIL.PKG_FUNC IN ('1401', '1402', '1408', 'CRCS') AND --BOMALE TCR
Changes added 1402 functionid
IF GWPKS_UTIL.PKG_FUNC IN
('1401', '1402', '1408', 'CRCS', 'ITM1', 'ITM4') AND --BOMALE TCR Changes
added 1402 functionid -- Added ITM1, ITM4 -- Fix for the issue 2420 changes added
ITM1 and ITM4
CSPKS_REQ_GLOBAL.G_HEADER('ACTION') IN ('INPUT', 'ENRICH') -- IN
('1006','1408','1401','8207')
THEN
P_TY_UPLD_REC.TXN_ACC := L_CUST_AC_NO;
-- P_TY_UPLD_REC.TXN_BRANCH := L_BRANCH_CODE -- Virtual Account changes
commented
P_TY_UPLD_REC.TXN_BRANCH := NVL(P_TY_UPLD_REC.TXN_BRANCH,
L_BRANCH_CODE); -- Virtual Account changes
added
IF L_CUST_AC_NO IS NULL THEN
DBG('If l_cust_ac_no is null g_viraccno' || G_VIRACCNO);
P_TY_UPLD_REC.TXN_ACC := G_VIRACCNO;
END IF;
DBG('l_cust_ac_no if virtual is not present' || L_CUST_AC_NO);
DBG('p_ty_upld_Rec.ofs_acc for 1401,1408,8207 ' ||
P_TY_UPLD_REC.OFS_ACC);
DBG('p_ty_upld_Rec.Ofs_Branch set for switch is ' ||
P_TY_UPLD_REC.OFS_BRANCH);
DBG('p_ty_upld_Rec.txn_acc for 1401,1408,8207 ' ||
P_TY_UPLD_REC.TXN_ACC);
DBG('p_ty_upld_Rec.txn_Branch set for switch is ' ||
P_TY_UPLD_REC.TXN_BRANCH);
END IF;
-- Virtual Account changes added ends
IF GWPKS_UTIL.PKG_FUNC IN ('1006') AND
CSPKS_REQ_GLOBAL.G_HEADER('ACTION') IN ('INPUT', 'ENRICH') THEN
P_TY_UPLD_REC.OFS_ACC := L_CUST_AC_NO;
-- p_ty_upld_Rec.Ofs_Branch := l_branch_code;
IF L_CUST_AC_NO IS NULL THEN
DBG('If l_cust_ac_no is null 1006 g_viraccno' || G_VIRACCNO);

P_TY_UPLD_REC.OFS_ACC := G_VIRACCNO;
DBG('if ofs_branch l_branch_code ' || L_BRANCH_CODE);
-- p_ty_upld_Rec.Ofs_Branch := l_branch_code;
DBG('p_ty_upld_Rec.Ofs_Branch' || P_TY_UPLD_REC.OFS_BRANCH);
END IF;
DBG('p_ty_upld_Rec.ofs_acc set for switch is ' ||
P_TY_UPLD_REC.OFS_ACC);
DBG('p_ty_upld_Rec.Ofs_Branch set for switch is ' ||
P_TY_UPLD_REC.OFS_BRANCH);
END IF;

RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_branch_code with : ' || SQLCODE || ':'
||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001', P_VIR_ACC_NO || '~');
P_RET := -1;

RETURN FALSE;
END FN_VALIDATE_VIRTUAL_ACC;

-- VIRTUAL ACCOUNT CHANGE ends


----------------------------------------------
FUNCTION FN_VALIDATE_BRANCH_CODE(P_BRANCH_CODE IN DETBS_RTL_TELLER.BRANCH_CODE
%TYPE,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS

L_ERR_CODE ERTBS_MSGS.ERR_CODE%TYPE;
L_ERR_PARAM VARCHAR2(200);
BEGIN
DBG('Inside fn_validate_branch_code...');
IF NOT FN_VALIDATE_BRANCH(P_BRANCH_CODE, P_RET, L_ERR_CODE, L_ERR_PARAM) THEN
DBG('failed while validating branch_code :' || P_BRANCH_CODE);
OVPKSS.PR_APPENDTBL('DE-VAL-01', NULL);
RETURN FALSE;
END IF;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_branch_code with : ' || SQLCODE || ':'
||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001',
P_BRANCH_CODE || '~' || 'Transaction Branch Code' ||
'~');
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_BRANCH_CODE;
------------------------------------------------

--fcubs 10.5 changes starts

FUNCTION FN_VALIDATE_INSTR_DATE(P_TY_RETAILTLR_UPD IN DETB_UPLOAD_RTL_TELLER


%ROWTYPE,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS

L_ERR_CODE ERTBS_MSGS.ERR_CODE%TYPE;
L_ERR_PARAM VARCHAR2(200);
L_CHEQUE_BOOK_ISS_DATE DETBS_UPLOAD_RTL_TELLER.INSTR_DATE%TYPE; -- fcubs11.2
itr1 sfr 1115
L_STATUS VARCHAR(1); -- fcubs11.2 itr1 sfr 1115
BEGIN
DBG('Inside fn_validate_instr_date...' || P_TY_RETAILTLR_UPD.TRN_DT);

IF P_TY_RETAILTLR_UPD.INSTR_DATE > P_TY_RETAILTLR_UPD.TRN_DT THEN


DBG('instrumnet date is greater then trn date ' ||
P_TY_RETAILTLR_UPD.INSTR_DATE);
OVPKSS.PR_APPENDTBL('DE-VAL-07', NULL);
P_RET := -1;
RETURN FALSE;
END IF;
/*10-jul-2011 AEDMBU UAT1 SFR#DEFLT00007824 CHANGES START*/
IF P_TY_RETAILTLR_UPD.PRODUCT_CODE = 'LOCH' THEN
IF P_TY_RETAILTLR_UPD.CHEQUE_ISSUE_DATE > P_TY_RETAILTLR_UPD.TRN_DT THEN
DBG('Overried..... Cheque issue Date is a Future date....');
OVPKSS.PR_APPENDTBL('CG-IO1024', NULL);

END IF;
END IF;

/*10-jul-2011 AEDMBU UAT1 SFR#DEFLT00007824 CHANGES END*/


-- fcubs11.2 itr1 sfr 1115 Starts
IF P_TY_RETAILTLR_UPD.CHEQUE_ISSUE_DATE IS NOT NULL AND
P_TY_RETAILTLR_UPD.PRODUCT_CODE IN ('LOCH', 'CQWL', 'CRCM') THEN
--FCUBS11.2 ITR1 SFR1299
DBG('Value received for Product Code :' ||
P_TY_RETAILTLR_UPD.PRODUCT_CODE);
DBG('Value received for Transaction Branch :' ||
P_TY_RETAILTLR_UPD.TXN_BRANCH);
DBG('Value received for Transaction Account:' ||
P_TY_RETAILTLR_UPD.TXN_ACC);
DBG('Value received for Instrument Code :' ||
P_TY_RETAILTLR_UPD.DR_INSTRUMENT_CODE);

DBG('Value received for p_ty_retailtlr_upd.cheque_issue_date ' ||


P_TY_RETAILTLR_UPD.CHEQUE_ISSUE_DATE);

--AEDMBU UATB DEFLT00010455 Changes start


IF CSPKS_REQ_GLOBAL.G_HEADER('FUNCTIONID') IN ('1013', '1012') THEN
-- TCR changes madhu added 1012
IF P_TY_RETAILTLR_UPD.CHEQUE_ISSUE_DATE > GLOBAL.APPLICATION_DATE THEN
OVPKSS.PR_APPENDTBL('DE-DAT01', NULL);
END IF;
END IF;
--AEDMBU UATB DEFLT00010455 Changes end
BEGIN
SELECT ISSUE_DATE
INTO L_CHEQUE_BOOK_ISS_DATE
FROM CATMS_CHECK_BOOK
WHERE BRANCH = P_TY_RETAILTLR_UPD.TXN_BRANCH
AND ACCOUNT = P_TY_RETAILTLR_UPD.TXN_ACC
AND FIRST_CHECK_NO =
(SELECT CHECK_BOOK_NO
FROM CATMS_CHECK_DETAILS
WHERE BRANCH = P_TY_RETAILTLR_UPD.TXN_BRANCH
AND ACCOUNT = P_TY_RETAILTLR_UPD.TXN_ACC
AND CHECK_NO = P_TY_RETAILTLR_UPD.DR_INSTRUMENT_CODE
AND MOD_NO =
(SELECT MAX(MOD_NO)
FROM CATMS_CHECK_DETAILS
WHERE BRANCH = P_TY_RETAILTLR_UPD.TXN_BRANCH
AND ACCOUNT = P_TY_RETAILTLR_UPD.TXN_ACC
AND CHECK_NO =
P_TY_RETAILTLR_UPD.DR_INSTRUMENT_CODE));

DBG('Cheuqe Instrument is available with l_cheque_book_iss_date : ' ||


L_CHEQUE_BOOK_ISS_DATE);

EXCEPTION
WHEN OTHERS THEN
DBG('In Exception: Cheuqe is not available hence l_cheque_book_iss_date
is : ' ||
L_CHEQUE_BOOK_ISS_DATE);
END;

IF L_CHEQUE_BOOK_ISS_DATE IS NULL THEN


BEGIN
SELECT AC_OPEN_DATE
INTO L_CHEQUE_BOOK_ISS_DATE
FROM STTM_CUST_ACCOUNT
WHERE BRANCH_CODE = P_TY_RETAILTLR_UPD.TXN_BRANCH
AND CUST_AC_NO = P_TY_RETAILTLR_UPD.TXN_ACC;
EXCEPTION
WHEN OTHERS THEN
DBG('In Exception: Account Open Date is not available
l_cheque_book_iss_date is : ' ||
L_CHEQUE_BOOK_ISS_DATE);
END;
END IF;

IF P_TY_RETAILTLR_UPD.CHEQUE_ISSUE_DATE < L_CHEQUE_BOOK_ISS_DATE THEN


DBG('Failed in validating Cheueq: Cheque issue date cannot be lesser than
the Cheque book issue date');
OVPKSS.PR_APPENDTBL('CG-CL0032', NULL);
P_RET := -1;
RETURN FALSE;
END IF;
DBG('Validation Success: Cheque issue date is not lesser than the Cheque book
issue date');
END IF;

-- fcubs11.2 itr1 sfr 1115 Ends

RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_instr_date with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001', P_TY_RETAILTLR_UPD.XREF || '~');
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_INSTR_DATE;

--fcubs 10.5 changes ends


-----------------------------------------------------------------------

FUNCTION FN_VALIDATE_TXN_BRANCH(P_BRANCH_CODE IN DETBS_RTL_TELLER.BRANCH_CODE


%TYPE,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS
L_ERR_CODE ERTBS_MSGS.ERR_CODE%TYPE;
L_ERR_PARAM VARCHAR2(200);
BEGIN
DBG('Inside fn_validate_txn_branch...');
IF NOT FN_VALIDATE_BRANCH(P_BRANCH_CODE, P_RET, L_ERR_CODE, L_ERR_PARAM) THEN
DBG('failed while validating branch_code :' || P_BRANCH_CODE);
OVPKSS.PR_APPENDTBL('DE-TUD-020', NULL);
RETURN FALSE;
END IF;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_txn_branch with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001',
P_BRANCH_CODE || '~' || 'Txn Account Branch' || '~');
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_TXN_BRANCH;
------------------------------------------------
FUNCTION FN_VALIDATE_OFS_BRANCH(P_BRANCH_CODE IN DETBS_RTL_TELLER.BRANCH_CODE
%TYPE,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS
L_ERR_CODE ERTBS_MSGS.ERR_CODE%TYPE;
L_ERR_PARAM VARCHAR2(200);
BEGIN
DBG('Inside fn_validate_ofs_branch...');
IF NOT FN_VALIDATE_BRANCH(P_BRANCH_CODE, P_RET, L_ERR_CODE, L_ERR_PARAM) THEN
DBG('failed while validating ofs_branch :' || P_BRANCH_CODE);
OVPKSS.PR_APPENDTBL('DE-TUD-092', NULL);
RETURN FALSE;
END IF;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_ofs_branch with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001',
P_BRANCH_CODE || '~' || 'Ofs Branch' || '~');
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_OFS_BRANCH;
------------------------------------------------
FUNCTION FN_VALIDATE_OFS_ACC(P_TY_RETAILTLR_UPD IN OUT DETB_UPLOAD_RTL_TELLER
%ROWTYPE --typeconv detbs_rtl_teller%ROWTYPE
,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS
L_ERR_CODE ERTBS_MSGS.ERR_CODE%TYPE;
L_ERR_PARAM VARCHAR2(200);
L_STTB_ACC_IDX VARCHAR2(23); -- brn_code(3) + account_no(20)
BEGIN
DBG('Inside fn_validate_ofs_acc...');
L_STTB_ACC_IDX := P_TY_RETAILTLR_UPD.OFS_BRANCH ||
P_TY_RETAILTLR_UPD.OFS_ACC;
TBL_STTB_ACCOUNT(L_STTB_ACC_IDX).TY_STTB_ACCOUNT.AC_GL_NO :=
P_TY_RETAILTLR_UPD.OFS_ACC;
TBL_STTB_ACCOUNT(L_STTB_ACC_IDX).TY_STTB_ACCOUNT.BRANCH_CODE :=
P_TY_RETAILTLR_UPD.OFS_BRANCH;

IF NOT FN_VALIDATE_ACC(P_TY_RETAILTLR_UPD,
TBL_STTB_ACCOUNT(L_STTB_ACC_IDX).TY_STTB_ACCOUNT,
P_TY_RETAILTLR_UPD.OFS_CCY,
P_RET,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('failed while validating OFS Account ' ||
TBL_STTB_ACCOUNT(L_STTB_ACC_IDX)
.TY_STTB_ACCOUNT.AC_GL_NO);
P_RET := -1;
RETURN FALSE;
END IF;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_ofs_acc with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-002', NULL);
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_OFS_ACC;
------------------------------------------------
FUNCTION FN_VALIDATE_TXN_ACC(P_TY_RETAILTLR_UPD IN OUT DETB_UPLOAD_RTL_TELLER
%ROWTYPE --typeconv detbs_rtl_teller%ROWTYPE
,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS
L_ERR_CODE ERTBS_MSGS.ERR_CODE%TYPE;
L_ERR_PARAM VARCHAR2(200);
L_STTB_ACC_IDX VARCHAR2(23); -- brn_code(3) + account_no(20)
BEGIN
DBG('Inside fn_validate_txn_acc...');

L_STTB_ACC_IDX := P_TY_RETAILTLR_UPD.TXN_BRANCH ||
P_TY_RETAILTLR_UPD.TXN_ACC;
TBL_STTB_ACCOUNT(L_STTB_ACC_IDX).TY_STTB_ACCOUNT.AC_GL_NO :=
P_TY_RETAILTLR_UPD.TXN_ACC;
TBL_STTB_ACCOUNT(L_STTB_ACC_IDX).TY_STTB_ACCOUNT.BRANCH_CODE :=
P_TY_RETAILTLR_UPD.TXN_BRANCH;
DBG('l_sttb_acc_idx:' || L_STTB_ACC_IDX);
IF NOT FN_VALIDATE_ACC(P_TY_RETAILTLR_UPD,
TBL_STTB_ACCOUNT(L_STTB_ACC_IDX).TY_STTB_ACCOUNT,
P_TY_RETAILTLR_UPD.TXN_CCY,
P_RET,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('failed while validating TXN Account ' ||
TBL_STTB_ACCOUNT(L_STTB_ACC_IDX)
.TY_STTB_ACCOUNT.AC_GL_NO);
P_RET := -1;
RETURN FALSE;
END IF;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_txn_acc with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-002', NULL);
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_TXN_ACC;
------------------------------------------------
FUNCTION FN_VALIDATE_REL_CUSTOMER(P_REL_CUSTOMER IN DETBS_RTL_TELLER.REL_CUSTOMER
%TYPE,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS
L_CNT NUMBER;
L_ERR_CODE ERTBS_MSGS.ERR_CODE%TYPE;
L_ERR_PARAM VARCHAR2(200);
L_STTB_ACC_IDX VARCHAR2(23); -- brn_code(3) + account_no(20)
BEGIN
DBG('Inside fn_validate_rel_customer...');
BEGIN
SELECT 1
INTO L_CNT
FROM STTM_CUSTOMER
WHERE CUSTOMER_NO = P_REL_CUSTOMER
AND RECORD_STAT = 'O'
AND AUTH_STAT = 'A';
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBG('Exception caught in fn_validate_rel_customer with sqlerrm : ' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-001',
P_REL_CUSTOMER || '~' || 'Relative Customer' || '~');
P_RET := -1;
RETURN FALSE;
END;
DBG('Successfully finished fn_validate_rel_customer');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_rel_customer with : ' ||
SQLCODE || ':' || SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-002', NULL);
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_REL_CUSTOMER;
------------------------------------------------
FUNCTION FN_VALIDATE_TXN_AMT_LIMITS(P_PROD_CODE IN DETBS_RTL_TELLER.PRODUCT_CODE
%TYPE,
P_TXN_AMT IN NUMBER,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS
L_MODULE CSTMS_PRODUCT.MODULE%TYPE;
L_TXN_LIMIT NUMBER;
BEGIN
DBG('Inside fn_validate_txn_amt_limits...');
----------------
-- For Validating the txn_amount with the Txn_Amount_limit for the product
starts
BEGIN
SELECT MODULE
INTO L_MODULE
FROM CSTMS_PRODUCT
WHERE PRODUCT_CODE = P_PROD_CODE;
EXCEPTION
WHEN OTHERS THEN
DBG('E',
'In when others of selecting module from cstm_product' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('DE-TUD-070', NULL);
P_RET := -1;
RETURN FALSE;
END;
----------------
IF L_MODULE <> 'CG' THEN
------------
--Verifying for the txn amount greater than the txn limit
BEGIN
SELECT TXN_LIMIT
INTO L_TXN_LIMIT
FROM DETMS_RT_PREFERENCES
WHERE PRODUCT_CODE = P_PROD_CODE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBG('E', 'No record for this product in detms_rt_preferences');
OVPKSS.PR_APPENDTBL('DE-TUD-069', NULL);
P_RET := -1;
RETURN FALSE;
WHEN OTHERS THEN
DBG('In when others of selecting Txn limit from detms_rt_preferences' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('DE-TUD-070', NULL);
P_RET := -1;
RETURN FALSE;
END;
------------
IF P_TXN_AMT > L_TXN_LIMIT THEN
DBG('failed while validating l_txn_limit : txn_amount > l_txn_limit');
OVPKSS.PR_APPENDTBL('DE-TUD-099', NULL);
P_RET := -1;
RETURN FALSE;
END IF;
------------
END IF;
----------------
DBG('Successfully finished fn_validate_txn_amt_limits');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_txn_amt_limits with : ' ||
SQLCODE || ':' || SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-002', NULL);
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_TXN_AMT_LIMITS;
------------------------------------------------
FUNCTION FN_VALIDATE_CHGDETS(P_TBL_CHGDETS IN TYP_TBLCHGDETS,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS
BEGIN
DBG('Inside fn_validate_chgdets');
FOR I IN 1 .. P_TBL_CHGDETS.COUNT LOOP
DBG('Validation starts for charge component ' || I);

DBG('p_tbl_chgdets(i).waiver--->' || P_TBL_CHGDETS(I).WAIVER);
------------------
IF NVL(P_TBL_CHGDETS(I).WAIVER, 'N') = 'N' THEN
---9NT1428 SFR1293 ITR1

-- FCC73ITR1 SFR 328


IF P_TBL_CHGDETS(I).COD_CHG_DESC IS NULL THEN
DBG('Value received for p_tbl_chgdets(i).cod_chg_desc : ' ||
P_TBL_CHGDETS(I)
.COD_CHG_DESC);
P_RET := -1;
DBG('E',
'Incorrect Charge component received : ' || P_TBL_CHGDETS(I)
.COD_CHG_DESC);
OVPKSS.PR_APPENDTBL('GW-RTL-009',
NVL(P_TBL_CHGDETS(I).COD_CHG_DESC, 'Nill') || '~');
RETURN FALSE;
END IF;
-- FCC73ITR1 SFR 328
------------------
IF P_TBL_CHGDETS(I).COD_CHG_CCY IS NOT NULL THEN
DBG('Value received for p_tbl_chgdets(i).cod_chg_ccy : ' ||
P_TBL_CHGDETS(I)
.COD_CHG_CCY);
IF NOT FN_VALIDATE_CHG_CCY(P_TBL_CHGDETS(I).COD_CHG_CCY, P_RET) THEN
P_RET := -1;
END IF;
END IF;
------------------
DBG('coming1');
IF P_TBL_CHGDETS(I).MIS_HEAD IS NOT NULL THEN
DBG('Value received for p_tbl_chgdets(i).mis_head : ' || P_TBL_CHGDETS(I)
.MIS_HEAD);
IF NOT FN_VALIDATE_MIS_HEAD(P_TBL_CHGDETS(I).MIS_HEAD, P_RET) THEN
P_RET := -1;
END IF;
END IF;
------------------
DBG('coming2');
IF P_TBL_CHGDETS(I).TXN_CODE IS NOT NULL THEN
DBG('Value received for p_tbl_chgdets(i).txn_code : ' || P_TBL_CHGDETS(I)
.TXN_CODE);
IF NOT FN_VALIDATE_TXN_CODE(P_TBL_CHGDETS(I).TXN_CODE, P_RET) THEN
P_RET := -1;
END IF;
END IF;
------------------
DBG('coming3');
-- CHGGL
IF P_TBL_CHGDETS(I).CHG_GL IS NOT NULL THEN
DBG('Value received for p_tbl_chgdets(i).chg_gl : ' || P_TBL_CHGDETS(I)
.CHG_GL);
IF NOT FN_VALIDATE_CHG_GL(P_TBL_CHGDETS(I).CHG_GL, P_RET) THEN
P_RET := -1;
END IF;
END IF;
END IF; ---9NT1428 SFR1293 ITR1
------------------
DBG('coming4');
IF FN_IS_AN_ERROR_RAISED(P_RET) THEN
DBG('E', 'Error found in function fn_validate_chgdets..');
RETURN FALSE;
END IF;
-------------------
--PR00000805 changes starts
DBG('coming5');
IF (NVL(GWPKS_UTIL.PKG_FUNC, '***')) = 'CRCP' THEN
IF P_TBL_CHGDETS(I)
.CHG_AMT <= 0 AND NVL(P_TBL_CHGDETS(I).WAIVER, 'N') = 'N' THEN
OVPKSS.PR_APPENDTBL('GW-RTL-022', NULL);
RETURN FALSE;
END IF;
END IF;
--PR00000805 changes ends
DBG('Validation finished for charge component ' || I);
END LOOP;
DBG('Successfully finished fn_validate_chgdets');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_chgdets with : ' || SQLCODE || ':' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-003', NULL); -- Failed while validating charge
details.
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_CHGDETS;
------------------------------------------------
FUNCTION FN_DEFAULT_CHGDETS(P_TBL_CHGDETS IN OUT TYP_TBLCHGDETS,
P_DETB_RTL_TLR IN DETBS_RTL_TELLER%ROWTYPE,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS
L_ARC_MAINT IFTMS_ARC_MAINT%ROWTYPE;
L_ERR_CODE ERTBS_MSGS.ERR_CODE%TYPE;
L_ERR_PARAM ERTBS_MSGS.MESSAGE%TYPE;
L_ACTUAL_COUNT NUMBER := 0; -- FCC73ITR1 SFR 328
L_TBL_CHGDETS TYP_TBLCHGDETS; -- FCC73ITR1 SFR 328
L_ROW_FOUND BOOLEAN := FALSE; -- FCC73ITR1 SFR 328
BEGIN
DBG('Inside fn_default_chgdets');
-------------------
--FCUBS10.0LOT3 Flexbranch Intgeration changes
DBG('p_tbl_chgdets.count ' || P_TBL_CHGDETS.COUNT);

IF P_TBL_CHGDETS.COUNT > 0 THEN


FOR L_ROW IN 1 .. P_TBL_CHGDETS.COUNT LOOP
IF NVL(P_TBL_CHGDETS(L_ROW).WAIVER, 'N') = 'N' THEN
GWPKS_UTIL.PKG_CHG_DETS := GWPKS_UTIL.PKG_CHG_DETS ||
P_TBL_CHGDETS(L_ROW)
.COD_CHG_CCY || '~' || P_TBL_CHGDETS(L_ROW)
.CHG_AMT || '~';
ELSE
GWPKS_UTIL.PKG_CHG_DETS := GWPKS_UTIL.PKG_CHG_DETS ||
P_TBL_CHGDETS(L_ROW)
.COD_CHG_CCY || '~' || '0' || '~';
END IF;

DEPKS_RTL_TELLER.PKG_CHG_DETS := GWPKS_UTIL.PKG_CHG_DETS;
--CHGCOMP~TYPE~WAIVER~CHGAMT~LCYCHG~XRATE~CHGCCY~TCYCHG~TCYXRATE~
GWPKS_UTIL.PKG_TEMP_CHG_DETS := GWPKS_UTIL.PKG_TEMP_CHG_DETS ||
P_TBL_CHGDETS(L_ROW)
.WAIVER || '~' || P_TBL_CHGDETS(L_ROW)
.COD_CHG_CCY || '~' || P_TBL_CHGDETS(L_ROW)
.CHG_AMT || '~' || '~' || '~' || '~~';
END LOOP;
END IF;
--FCUBS10.0LOT3 Flexbranch Intgeration changes ends
DBG('gwpks_util.pkg_chg_dets ' || GWPKS_UTIL.PKG_CHG_DETS);
DBG('Depks_Rtl_Teller.pkg_chg_dets ' || DEPKS_RTL_TELLER.PKG_CHG_DETS);
DBG('p_detb_rtl_tlr.rel_customer---> ' || P_DETB_RTL_TLR.REL_CUSTOMER); --
9NT1428- FCUBS 11.2 Customer Group CHANGES

CSPKSS_ARC.PR_GET_ARC_ROW(P_DETB_RTL_TLR.BRANCH_CODE,
P_DETB_RTL_TLR.PRODUCT_CODE,
'P',
P_DETB_RTL_TLR.REL_CUSTOMER,
--DEFLT00025704 Changes starts
P_DETB_RTL_TLR.TXN_CCY, -- DEFLT00026265 Changes
uncommented
-- p_detb_rtl_tlr.ofs_ccy, -- DEFLT00026265
Changes
--DEFLT00025704 Changes ends
L_ARC_MAINT,
L_ERR_CODE,
L_ERR_PARAM);
IF L_ERR_CODE IS NOT NULL THEN
L_ERR_CODE := NULL;
CSPKSS_ARC.PR_GET_ARC_ROW(P_DETB_RTL_TLR.BRANCH_CODE,
P_DETB_RTL_TLR.PRODUCT_CODE,
'P',
'*.*',
--DEFLT00025704 Changes starts
P_DETB_RTL_TLR.TXN_CCY, -- DEFLT00026265 Changes
uncommented
-- p_detb_rtl_tlr.ofs_ccy,-- DEFLT00026265
Changes
--DEFLT00025704 Changes Ends
L_ARC_MAINT,
L_ERR_CODE,
L_ERR_PARAM);
IF L_ERR_CODE IS NOT NULL THEN
DBG('Failed while fetching arc details....');
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
P_RET := -1;
RETURN FALSE;
END IF;
END IF;

PKG_ARC_ROW := L_ARC_MAINT;

-- UAT_UAE_064 changes start


IF NVL(DEPKS_RETAILTELLERUPLOAD.G_CHARGE, 'Y') = 'N' THEN
RETURN TRUE;
END IF;
-- UAT_UAE_064 changes end

FOR L_ROW IN 1 .. 5 LOOP


IF L_ROW = 1 AND L_ARC_MAINT.COD_CHG_DESC IS NOT NULL THEN
DBG('Actual row = ' || L_ROW || ' found.');
L_ACTUAL_COUNT := L_ACTUAL_COUNT + 1;
L_TBL_CHGDETS(L_ROW).COD_CHG_DESC := L_ARC_MAINT.COD_CHG_DESC;
L_TBL_CHGDETS(L_ROW).CHG_AMT := L_ARC_MAINT.COD_CHG_AMT;
L_TBL_CHGDETS(L_ROW).MIS_HEAD := L_ARC_MAINT.COD_MIS_HEAD1;
L_TBL_CHGDETS(L_ROW).COD_CHG_CCY := L_ARC_MAINT.COD_CHG_CCY;
L_TBL_CHGDETS(L_ROW).CHG_GL := L_ARC_MAINT.COD_CHG_GL;
L_TBL_CHGDETS(L_ROW).TXN_CODE := L_ARC_MAINT.COD_CHG_TXN_CODE;
L_TBL_CHGDETS(L_ROW).NETTING_IND := L_ARC_MAINT.COD_CHG_NETTING;
ELSIF L_ROW = 2 AND L_ARC_MAINT.COD_CHG_DESC1 IS NOT NULL THEN
DBG('Actual row = ' || L_ROW || ' found.');
L_ACTUAL_COUNT := L_ACTUAL_COUNT + 1;
L_TBL_CHGDETS(L_ROW).COD_CHG_DESC := L_ARC_MAINT.COD_CHG_DESC1;
L_TBL_CHGDETS(L_ROW).CHG_AMT := L_ARC_MAINT.COD_CHG_AMT1;
L_TBL_CHGDETS(L_ROW).MIS_HEAD := L_ARC_MAINT.COD_MIS_HEAD2;
L_TBL_CHGDETS(L_ROW).COD_CHG_CCY := L_ARC_MAINT.COD_CHG_CCY1;
L_TBL_CHGDETS(L_ROW).CHG_GL := L_ARC_MAINT.COD_CHG_GL1;
L_TBL_CHGDETS(L_ROW).TXN_CODE := L_ARC_MAINT.COD_CHG_TXN_CODE1;
L_TBL_CHGDETS(L_ROW).NETTING_IND := L_ARC_MAINT.COD_CHG_NETTING1;
ELSIF L_ROW = 3 AND L_ARC_MAINT.COD_CHG_DESC2 IS NOT NULL THEN
DBG('Actual row = ' || L_ROW || ' found.');
L_ACTUAL_COUNT := L_ACTUAL_COUNT + 1;
L_TBL_CHGDETS(L_ROW).COD_CHG_DESC := L_ARC_MAINT.COD_CHG_DESC2;
L_TBL_CHGDETS(L_ROW).CHG_AMT := L_ARC_MAINT.COD_CHG_AMT2;
L_TBL_CHGDETS(L_ROW).MIS_HEAD := L_ARC_MAINT.COD_MIS_HEAD3;
L_TBL_CHGDETS(L_ROW).COD_CHG_CCY := L_ARC_MAINT.COD_CHG_CCY2;
L_TBL_CHGDETS(L_ROW).CHG_GL := L_ARC_MAINT.COD_CHG_GL2;
L_TBL_CHGDETS(L_ROW).TXN_CODE := L_ARC_MAINT.COD_CHG_TXN_CODE2;
L_TBL_CHGDETS(L_ROW).NETTING_IND := L_ARC_MAINT.COD_CHG_NETTING2;
ELSIF L_ROW = 4 AND L_ARC_MAINT.COD_CHG_DESC3 IS NOT NULL THEN
DBG('Actual row = ' || L_ROW || ' found.');
L_ACTUAL_COUNT := L_ACTUAL_COUNT + 1;
L_TBL_CHGDETS(L_ROW).COD_CHG_DESC := L_ARC_MAINT.COD_CHG_DESC3;
L_TBL_CHGDETS(L_ROW).CHG_AMT := L_ARC_MAINT.COD_CHG_AMT3;
L_TBL_CHGDETS(L_ROW).MIS_HEAD := L_ARC_MAINT.COD_MIS_HEAD4;
L_TBL_CHGDETS(L_ROW).COD_CHG_CCY := L_ARC_MAINT.COD_CHG_CCY4;
L_TBL_CHGDETS(L_ROW).CHG_GL := L_ARC_MAINT.COD_CHG_GL4;
L_TBL_CHGDETS(L_ROW).TXN_CODE := L_ARC_MAINT.COD_CHG_TXN_CODE4;
L_TBL_CHGDETS(L_ROW).NETTING_IND := L_ARC_MAINT.COD_CHG_NETTING4;
ELSIF L_ROW = 5 AND L_ARC_MAINT.COD_CHG_DESC4 IS NOT NULL THEN
DBG('Actual row = ' || L_ROW || ' found.');
L_ACTUAL_COUNT := L_ACTUAL_COUNT + 1;
L_TBL_CHGDETS(L_ROW).COD_CHG_DESC := L_ARC_MAINT.COD_CHG_DESC4;
L_TBL_CHGDETS(L_ROW).CHG_AMT := L_ARC_MAINT.COD_CHG_AMT4;
L_TBL_CHGDETS(L_ROW).MIS_HEAD := L_ARC_MAINT.COD_MIS_HEAD5;
L_TBL_CHGDETS(L_ROW).COD_CHG_CCY := L_ARC_MAINT.COD_CHG_CCY4;
L_TBL_CHGDETS(L_ROW).CHG_GL := L_ARC_MAINT.COD_CHG_GL4;
L_TBL_CHGDETS(L_ROW).TXN_CODE := L_ARC_MAINT.COD_CHG_TXN_CODE4;
L_TBL_CHGDETS(L_ROW).NETTING_IND := L_ARC_MAINT.COD_CHG_NETTING4;
END IF;
IF L_ACTUAL_COUNT = L_ROW THEN
DBG('l_tbl_chgdets(' || L_ACTUAL_COUNT || ').mis_head..... : ' ||
L_TBL_CHGDETS(L_ACTUAL_COUNT)
.MIS_HEAD);
DBG('l_tbl_chgdets(' || L_ACTUAL_COUNT || ').waiver....... : ' ||
L_TBL_CHGDETS(L_ACTUAL_COUNT)
.WAIVER);
DBG('l_tbl_chgdets(' || L_ACTUAL_COUNT || ').chg_amt...... : ' ||
L_TBL_CHGDETS(L_ACTUAL_COUNT)
.CHG_AMT);
DBG('l_tbl_chgdets(' || L_ACTUAL_COUNT || ').chg_ccy...... : ' ||
L_TBL_CHGDETS(L_ACTUAL_COUNT)
.COD_CHG_CCY);
DBG('l_tbl_chgdets(' || L_ACTUAL_COUNT || ').txn_code..... : ' ||
L_TBL_CHGDETS(L_ACTUAL_COUNT)
.TXN_CODE);
DBG('l_tbl_chgdets(' || L_ACTUAL_COUNT || ').chg_gl....... : ' ||
L_TBL_CHGDETS(L_ACTUAL_COUNT)
.CHG_GL);
DBG('l_tbl_chgdets(' || L_ACTUAL_COUNT || ').netting_ind.. : ' ||
L_TBL_CHGDETS(L_ACTUAL_COUNT)
.NETTING_IND);
END IF;
-- FCC73ITR1 SFR 439 Start
IF P_TBL_CHGDETS.EXISTS(L_ROW) THEN
L_TBL_CHGDETS(L_ROW).WAIVER := NVL(P_TBL_CHGDETS(L_ROW).WAIVER, 'N');
END IF;
-- FCC73ITR1 SFR 439 End
END LOOP;

DBG('Total No of actual charges defined : ' || L_ACTUAL_COUNT);

FOR L_PROW IN 1 .. P_TBL_CHGDETS.COUNT LOOP


L_ROW_FOUND := FALSE; -- to check whether row is defined in the arc
maintainance..

FOR L_AROW IN 1 .. L_TBL_CHGDETS.COUNT LOOP


DBG('l_tbl_chgdets(l_arow).waiver-->' || L_TBL_CHGDETS(L_AROW)
.WAIVER);

IF L_TBL_CHGDETS(L_AROW)
.COD_CHG_DESC = P_TBL_CHGDETS(L_PROW).COD_CHG_DESC THEN
L_ROW_FOUND := TRUE;
IF P_TBL_CHGDETS(L_PROW).CHG_AMT IS NOT NULL THEN
L_TBL_CHGDETS(L_AROW).CHG_AMT := P_TBL_CHGDETS(L_PROW).CHG_AMT;
END IF;
IF P_TBL_CHGDETS(L_PROW).MIS_HEAD IS NOT NULL THEN
L_TBL_CHGDETS(L_AROW).MIS_HEAD := P_TBL_CHGDETS(L_PROW).MIS_HEAD;
END IF;
IF P_TBL_CHGDETS(L_PROW).COD_CHG_CCY IS NOT NULL THEN
L_TBL_CHGDETS(L_AROW).COD_CHG_CCY := P_TBL_CHGDETS(L_PROW)
.COD_CHG_CCY;
END IF;
IF P_TBL_CHGDETS(L_PROW).CHG_GL IS NOT NULL THEN
L_TBL_CHGDETS(L_AROW).CHG_GL := P_TBL_CHGDETS(L_PROW).CHG_GL;
END IF;
IF P_TBL_CHGDETS(L_PROW).TXN_CODE IS NOT NULL THEN
L_TBL_CHGDETS(L_AROW).TXN_CODE := P_TBL_CHGDETS(L_PROW).TXN_CODE;
END IF;
IF P_TBL_CHGDETS(L_PROW).NETTING_IND IS NOT NULL THEN
L_TBL_CHGDETS(L_AROW).NETTING_IND := P_TBL_CHGDETS(L_PROW)
.NETTING_IND;
END IF;
END IF;

END LOOP;
IF NOT L_ROW_FOUND THEN
P_RET := -1;
DBG('E',
'Wrong Charge component received : ' || P_TBL_CHGDETS(L_PROW)
.COD_CHG_DESC);
OVPKSS.PR_APPENDTBL('GW-RTL-009',
NVL(P_TBL_CHGDETS(L_PROW).COD_CHG_DESC, 'Nill') ||
'~');
RETURN FALSE;
END IF;
END LOOP;

P_TBL_CHGDETS := L_TBL_CHGDETS;
-- FCC73ITR1 SFR 328 End

DBG('Successfully finished fn_default_chgdets');


RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_chgdets with : ' || SQLCODE || ':' ||
SQLERRM);
dbg('Failing for ' || dbms_utility.format_error_backtrace);
OVPKSS.PR_APPENDTBL('GW-RTL-003', NULL); -- Failed while validating charge
details.
P_RET := -1;
RETURN FALSE;
END FN_DEFAULT_CHGDETS;

------------------------------------------------

-- MBU22 - 11.2.0.1.0BOMLAE? << validating till amount>> changes start


FUNCTION FN_VALIDATE_TILL_LIMIT(PBRN IN VARCHAR2,
P_TILL_ID IN VARCHAR2,
PERRORCODE IN OUT VARCHAR2) RETURN BOOLEAN IS

L_CCYCODE VARCHAR2(10);
L_CCY_AMOUNT NUMBER;
L_RET_AMOUNT NUMBER;
L_TOT_AMOUNT NUMBER := 0;
L_EXRATE CYTMS_RATES.MID_RATE%TYPE;
L_TILL_LIMIT NUMBER;
CURSOR C1 IS
SELECT CCYCODE, SUM(DENOMVAL * DENOMCOUNT)
FROM FBTB_TILL_DETAIL_CCY
WHERE BRANCHCODE = PBRN
AND TILL_ID = P_TILL_ID
GROUP BY TILL_ID, CCYCODE, BRANCHCODE;

BEGIN
DBG('Inside fn_validate_till_limit for ' || GWPKS_UTIL.G_TILL_ID);
SELECT NVL(TILL_LIMIT, 0)
INTO L_TILL_LIMIT
FROM STTM_BRANCH
WHERE BRANCH_CODE = PBRN;

IF NOT C1%ISOPEN THEN


OPEN C1;
END IF;
LOOP
FETCH C1
INTO L_CCYCODE, L_CCY_AMOUNT;
EXIT WHEN C1%NOTFOUND;
DBG('values fetched ' || L_CCYCODE || ' ' || L_CCY_AMOUNT);
IF CYPKS.FN_AMT1_TO_AMT2(PBRN,
L_CCYCODE,
GLOBAL.LCY,
L_CCY_AMOUNT,
'N',
L_RET_AMOUNT,
L_EXRATE,
PERRORCODE) THEN
DBG('cycde that is passed is ' || L_CCYCODE || ' amount is ' ||
L_CCY_AMOUNT || ' returned local curr is ' || L_RET_AMOUNT);
L_TOT_AMOUNT := L_RET_AMOUNT + L_TOT_AMOUNT;
L_EXRATE := NULL;
END IF;
END LOOP;
DBG('total TILL Balance ' || L_TOT_AMOUNT);
IF L_TOT_AMOUNT >= L_TILL_LIMIT AND L_TILL_LIMIT > 0 THEN
--AEDMBU QAUATC DEF-TEL-008 (added equal to)
OVPKSS.PR_APPENDTBL('DE-TIL-VAL', NULL);
DBG('till limit exceeded');
ELSE
DBG('within limit ' || L_TILL_LIMIT);
END IF;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('error code is' || PERRORCODE);
RETURN FALSE;
CLOSE C1;

END FN_VALIDATE_TILL_LIMIT;
-- MBU22 - 11.2.0.1.0BOMLAE?<changes end here>

---AEDMBU UATA SFR#DEFLT00009055 Changes


FUNCTION FN_VALIDATE_TILL_LIMIT_NEW(PBRN IN VARCHAR2,
P_TILL_ID IN VARCHAR2,
PERRORCODE IN OUT VARCHAR2)
RETURN BOOLEAN IS

L_CCYCODE VARCHAR2(10);
L_CCY_AMOUNT NUMBER;
L_RET_AMOUNT NUMBER;
L_TOT_AMOUNT NUMBER := 0;
L_EXRATE CYTMS_RATES.MID_RATE%TYPE;
L_TILL_LIMIT NUMBER;
CURSOR C1 IS
SELECT CCYCODE, SUM(DENOMVAL * DENOMCOUNT)
FROM FBTB_TILL_DETAIL_CCY
WHERE BRANCHCODE = PBRN
AND TILL_ID = P_TILL_ID
GROUP BY TILL_ID, CCYCODE, BRANCHCODE;

BEGIN
DBG('Inside fn_validate_till_limit for ' || GWPKS_UTIL.G_TILL_ID);
SELECT NVL(TILL_LIMIT, 0)
INTO L_TILL_LIMIT
FROM STTM_BRANCH
WHERE BRANCH_CODE = PBRN;

IF NOT C1%ISOPEN THEN


OPEN C1;
END IF;
LOOP
FETCH C1
INTO L_CCYCODE, L_CCY_AMOUNT;
EXIT WHEN C1%NOTFOUND;
DBG('values fetched ' || L_CCYCODE || ' ' || L_CCY_AMOUNT);
IF CYPKS.FN_AMT1_TO_AMT2(PBRN,
L_CCYCODE,
GLOBAL.LCY,
L_CCY_AMOUNT,
'N',
L_RET_AMOUNT,
L_EXRATE,
PERRORCODE) THEN
DBG('cycde that is passed is ' || L_CCYCODE || ' amount is ' ||
L_CCY_AMOUNT || ' returned local curr is ' || L_RET_AMOUNT);
L_TOT_AMOUNT := L_RET_AMOUNT + L_TOT_AMOUNT;
L_EXRATE := NULL;
END IF;
END LOOP;
DBG('total TILL Balance ' || L_TOT_AMOUNT);
IF L_TOT_AMOUNT >= L_TILL_LIMIT AND L_TILL_LIMIT > 0 THEN
--AEDMBU QAUATC DEF-TEL-008 (added equal to)
OVPKSS.PR_APPENDTBL('DE-TILVAL2', NULL);
DBG('till limit exceeded');
ELSE
DBG('within limit ' || L_TILL_LIMIT);
END IF;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('error code is' || PERRORCODE);
RETURN FALSE;
CLOSE C1;

END FN_VALIDATE_TILL_LIMIT_NEW;

---AEDMBU UATA SFR#DEFLT00009055 Changes

--AEDMBU UAT1 SFR#DEFLT00007527 Changes Starts


FUNCTION FN_VALIDATE_USER_INPUT_LIMIT(P_USER_ID IN SMTB_USER_ROLE.USER_ID%TYPE,
P_CCY IN DETBS_JRNL_LOG.CCY_CD%TYPE,
P_AMOUNT IN DETBS_JRNL_LOG.AMOUNT%TYPE,
P_CURR_BRN IN SMTB_ROLE_DETAIL.BRANCH_CODE
%TYPE,
PERRORCODE IN OUT VARCHAR2)
RETURN BOOLEAN IS
L_USER_INPUT_LIMIT SMTB_USER.MAX_AUTH_AMT%TYPE;
L_ERROR_CODE ERTBS_MSGS.ERR_CODE%TYPE;
L_ERROR_MESSAGE ERTBS_MSGS.MESSAGE%TYPE;
BEGIN
DBG('AMOUNT' || P_AMOUNT);
IF NOT
SMPKS_FCJ_TXNLIMITCHK.FN_VALIDATE_USER_INPUT_LIMIT(P_USER_ID,
P_CCY,
P_AMOUNT,
P_CURR_BRN,
L_USER_INPUT_LIMIT,
L_ERROR_CODE,
L_ERROR_MESSAGE) THEN
DBG('USER ROLE INPUT LIMIT exceeded');
DBG('USER ROLE INPUT LIMIT >>' || L_USER_INPUT_LIMIT);
DBG('Transaction Amount >>' || P_AMOUNT);
DBG('Error code Appended' || 'DE-MLT42');
OVPKSS.PR_APPENDTBL('DE-MLT42', NULL);
PERRORCODE := 'DE-MLT42';
RETURN FALSE;
ELSE
RETURN TRUE;
END IF;

EXCEPTION
WHEN OTHERS THEN
DBG('In when Other exception fn_validate_User_Input_limit' ||
SQLERRM);
RETURN FALSE;
END FN_VALIDATE_USER_INPUT_LIMIT;
--AEDMBU UAT1 SFR#DEFLT00007527 Changes Ends

------------------------------------------------
FUNCTION FN_VALIDATE_RTL_TELLER_REC(P_TY_RETAILTLR_UPD IN OUT
DETB_UPLOAD_RTL_TELLER%ROWTYPE --typeconv typ_retail_teller_rec
,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS

L_TXN_LIMIT NUMBER;
L_MODULE CSTMS_PRODUCT.MODULE%TYPE;
L_STTB_TXN_ACC_IDX VARCHAR2(23);
L_STTB_OFS_ACC_IDX VARCHAR2(23);

L_ERR_CODE ERTBS_MSGS.ERR_CODE%TYPE;
L_ERR_PARAM ERTBS_MSGS.ERR_CODE%TYPE;
--FCUBS V.UM 11.0.0.0.0.0.0 - 9NT1316 - Lokesh M start
-- SFR 1291 l_rt_lend_flag detm_rt_preferences.retail_lending_product
%TYPE;
L_ACC STTB_ACCOUNT.AC_GL_NO%TYPE;
L_TXN_CNT NUMBER;
L_OFS_CNT NUMBER;
L_AC_OR_GL STTB_ACCOUNT.AC_OR_GL%TYPE;
L_AC_STAT_FROZEN STTM_CUST_ACCOUNT.AC_STAT_FROZEN%TYPE; --AEDMBU UATA
DEFLT00009177 Changes
L_TRACK_RECEIVABLE VARCHAR2(1); --DEFLT00015411 added
--FCUBS V.UM 11.0.0.0.0.0.0 - 9NT1316 - Lokesh M start

-- FCUBS_11.2.0.0.0_$BOMLAE_R18 FCYatBranch Start


L_FN_CALL_ID NUMBER;
L_TB_CLUSTER_DATA GLOBAL.TY_TB_CLUSTER_DATA;
L_TB_EMPTY_CLUSTER_DATA GLOBAL.TY_TB_CLUSTER_DATA;
-- FCUBS_11.2.0.0.0_$BOMLAE_R18 FCYatBranch End
L_FUNCTIONID VARCHAR2(50); --Post Golive changes <18-Apr-2015> added
-- Virtual Account Validation changes added starts
L_IS_VIR_ACC VARCHAR2(1);
L_VIR_ACC_NAME STTM_VIRTUAL_ACCOUNTS.VIR_ACC_NAME%TYPE;
L_COUNT NUMBER(5);
-- Virtual Account Validation changes added ends

--FCUBS_11.2.0.0.0$BOMLAE_Customer_Choreography_Financial_Transactions start
l_otp_val BOOLEAN;
l_cust_no sttm_customer.customer_no%TYPE;
l_mob sttms_cust_personal.mobile_number%TYPE;
l_email sttms_cust_personal.e_mail%TYPE;
--FCUBS_11.2.0.0.0$BOMLAE_Customer_Choreography_Financial_Transactions end
BEGIN
DBG('Inside fn_validate_rtl_teller_rec...');

--''''''''''''''''''''''''''''''''''''''''''''''''
-- FCC73ITR1 SFR 319 Start :
IF NOT FN_VALIDATE_XREF_NO(P_TY_RETAILTLR_UPD.XREF, P_RET) THEN
P_RET := -1;
RETURN FALSE;
END IF;
-- FCC73ITR1 SFR 319 End :
--''''''''''''''''''''''''''''''''''''''''''''''''
IF P_TY_RETAILTLR_UPD.BRANCH_CODE IS NOT NULL THEN
DBG('Value received for p_ty_retail_teller.branch_code ' ||
P_TY_RETAILTLR_UPD.BRANCH_CODE);
IF NOT FN_VALIDATE_BRANCH_CODE(P_TY_RETAILTLR_UPD.BRANCH_CODE, P_RET) THEN
P_RET := -1;
END IF;
END IF;
--''''''''''''''''''''''''''''''''''''''''''''''''

--MBU47-FCUBS_11.2.0.4.0BOMLAE BranchID Default(1013) START


DBG('TXN_ACCOUNT11 ....... ' || P_TY_RETAILTLR_UPD.TXN_ACC);
DBG('BRANCH_CODE11 ' || P_TY_RETAILTLR_UPD.BRANCH_CODE);
DBG('gwpks_util.pkg_func11 .. ' || GWPKS_UTIL.PKG_FUNC);

--PR0000606 - TD account changes changes start


IF GWPKS_UTIL.PKG_FUNC IN ('1013', '1001', '1012') THEN
--TCR changes added 1012 madhu
BEGIN
SELECT BRANCH_CODE
INTO P_TY_RETAILTLR_UPD.TXN_BRANCH
FROM STTMS_CUST_ACCOUNT
WHERE CUST_AC_NO = P_TY_RETAILTLR_UPD.TXN_ACC
AND ACCOUNT_TYPE <> 'Y';

DBG('TXN BRANCH_CODE is ' || P_TY_RETAILTLR_UPD.TXN_BRANCH);


EXCEPTION
WHEN NO_DATA_FOUND THEN
--PSAKSHI CHANGES START
IF GWPKS_UTIL.PKG_FUNC = '1001' THEN
begin
SELECT phy_brn
INTO P_TY_RETAILTLR_UPD.TXN_BRANCH
FROM sttm_virtual_accounts
WHERE record_stat = 'O'
and auth_stat = 'A'
and vir_acc_no = P_TY_RETAILTLR_UPD.TXN_ACC;
exception
when no_data_found then
P_RET := -1;
RETURN FALSE;
WHEN OTHERS THEN
P_RET := -1;
RETURN FALSE;
END;
ELSE
--PSAKSHI CHANGES END
P_RET := -1;
RETURN FALSE;
END IF; --PSAKSHI
WHEN OTHERS THEN
P_RET := -1;
RETURN FALSE;
END;
END IF;
--PR0000606 - TD account changes end

IF GWPKS_UTIL.PKG_FUNC IN ('1013', '1012') THEN


--TCR changes added 1012 madhu

--if p_ty_retail_teller.TXN_BRANCH IS NULL THEN


BEGIN
SELECT BRANCH_CODE
INTO P_TY_RETAILTLR_UPD.TXN_BRANCH
FROM STTB_ACCOUNT
WHERE AC_GL_NO = P_TY_RETAILTLR_UPD.TXN_ACC;

DBG('TXN BRANCH_CODE is ' || P_TY_RETAILTLR_UPD.TXN_BRANCH);


EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;

END IF;
--MBU47-FCUBS_11.2.0.4.0BOMLAE BranchID Default(1013) END

IF P_TY_RETAILTLR_UPD.TXN_BRANCH IS NOT NULL THEN


DBG('Value received for p_ty_retailtlr_upd.txn_branch ' ||
P_TY_RETAILTLR_UPD.TXN_BRANCH);
IF NOT FN_VALIDATE_TXN_BRANCH(P_TY_RETAILTLR_UPD.TXN_BRANCH, P_RET) THEN
P_RET := -1;
END IF;
END IF;
--''''''''''''''''''''''''''''''''''''''''''''''''
IF P_TY_RETAILTLR_UPD.OFS_BRANCH IS NOT NULL THEN
DBG('Value received for p_ty_retailtlr_upd.ofs_branch ' ||
P_TY_RETAILTLR_UPD.OFS_BRANCH);
IF NOT FN_VALIDATE_OFS_BRANCH(P_TY_RETAILTLR_UPD.OFS_BRANCH, P_RET) THEN
P_RET := -1;
END IF;
END IF;
-------------------------------------------------------------------------

--fcubs 10.5 SFR 3786 changes starts


IF P_TY_RETAILTLR_UPD.INSTR_DATE IS NOT NULL THEN
DBG('Value received for p_ty_retailtlr_upd.INSTR_DATE ' ||
P_TY_RETAILTLR_UPD.INSTR_DATE);
IF NOT FN_VALIDATE_INSTR_DATE(P_TY_RETAILTLR_UPD, P_RET) THEN
P_RET := -1;
END IF;
END IF;

--fcubs 10.5 changes ends

--------------------------------------------------------------------------------
--FCUBS V.UM 11.0.0.0.0.0.0 - 9NT1316 - Lokesh M Validation for CL changes
start

BEGIN
DBG('Inside select for RT lending product flag');
SELECT NVL(RETAIL_LENDING_PRODUCT, 'N'), NVL(TRACK_RECEIVABLE, 'N') --
DEFLT00015411 added
INTO L_RT_LEND_FLAG, L_TRACK_RECEIVABLE --DEFLT00015411 added
FROM DETM_RT_PREFERENCES
WHERE PRODUCT_CODE = P_TY_RETAILTLR_UPD.PRODUCT_CODE;
EXCEPTION
WHEN OTHERS THEN

DBG(' fails in select for RT lending product flag' || SQLERRM);


END;

DBG(' p_ty_retailtlr_upd.module is ' || P_TY_RETAILTLR_UPD.MODULE);

P_TY_RETAILTLR_UPD.TRACK_RECEIVABLE := L_TRACK_RECEIVABLE; --DEFLT00015411


added

--Saravana 26-Nov-2015 changes For Cover Ac balance Starts


IF GIPKS_#IFDPOSBK.G_DISABLE_TRACK_COVER THEN
DBG('POS Block with Cover So making Track Rcvbl as NO');
P_TY_RETAILTLR_UPD.TRACK_RECEIVABLE := 'N';
END IF;
--Saravana 26-Nov-2015 changes For Cover Ac balance Ends
DBG(' p_ty_retailtlr_upd.track_receivablec is ' ||
P_TY_RETAILTLR_UPD.TRACK_RECEIVABLE);
--FCUBS 11.0 SFR 889 starts
DBG('l_rt_lend_flag' || L_RT_LEND_FLAG);
IF NVL(L_RT_LEND_FLAG, 'N') = 'Y' THEN
/*l_acc :=nvl(p_ty_retailtlr_upd.ofs_acc,p_ty_retailtlr_upd.txn_acc);
dbg(' l_acc' || l_acc);*/
IF P_TY_RETAILTLR_UPD.OFS_ACC IS NOT NULL THEN
BEGIN
DBG('inside select for loan product validation');
SELECT COUNT(*)
INTO L_OFS_CNT
FROM STTB_ACCOUNT
WHERE AC_GL_NO = P_TY_RETAILTLR_UPD.OFS_ACC
AND AC_OR_GL = 'L'
AND AC_CLASS IN (SELECT PRODUCT_CODE
FROM CSTM_PRODUCT
WHERE PRODUCT_TYPE = 'L');
EXCEPTION
WHEN OTHERS THEN

DBG(' fails in select for loan product validation' || SQLERRM);


END;
END IF;
IF P_TY_RETAILTLR_UPD.TXN_ACC IS NOT NULL THEN
BEGIN
DBG('inside select for loan product validation');
SELECT COUNT(*)
INTO L_TXN_CNT
FROM STTB_ACCOUNT
WHERE AC_GL_NO = P_TY_RETAILTLR_UPD.TXN_ACC
AND AC_OR_GL = 'L'
AND AC_CLASS IN (SELECT PRODUCT_CODE
FROM CSTM_PRODUCT
WHERE PRODUCT_TYPE = 'L');
EXCEPTION
WHEN OTHERS THEN

DBG(' fails in select for loan product validation' || SQLERRM);


END;
END IF;

IF L_TXN_CNT = 0 AND L_OFS_CNT = 0 THEN


DBG('Both a/c are not Loan type');
OVPKSS.PR_APPENDTBL('RT-CL-001', NULL);
P_RET := -1;
RETURN FALSE;
END IF;
END IF;
--FCUBS 11.0 SFR 889 ends

-----------------------------------------------------------------------------------
-

----lm2
/* dbg('Inside select for RT lending product flag');
select retail_lending_product into l_rt_lend_flag
from detm_rt_preferences where product_code =
p_ty_retailtlr_upd.product_code;
EXCEPTION
WHEN OTHERS THEN

dbg(' fails in select for ac_or_gl' ||


SQLERRM);
END;

dbg('l_rt_lend_flag' || l_rt_lend_flag);*/
IF P_TY_RETAILTLR_UPD.OFS_ACC IS NOT NULL THEN
L_ACC := P_TY_RETAILTLR_UPD.OFS_ACC;
DBG(' offset l_acc' || L_ACC);
BEGIN
DBG('inside select for loan product validation');
SELECT AC_OR_GL
INTO L_AC_OR_GL
FROM STTB_ACCOUNT
WHERE AC_GL_NO = L_ACC
AND BRANCH_CODE = P_TY_RETAILTLR_UPD.OFS_BRANCH;
EXCEPTION
--AEDMBU UATA DEFLT00009813 Changes start
WHEN NO_DATA_FOUND THEN
DBG('checking if it is an g.l');
BEGIN
-- Virtual Account Validation changes added begin
SELECT AC_OR_GL
INTO L_AC_OR_GL
FROM STTB_ACCOUNT
WHERE AC_GL_NO = L_ACC;
-- Virtual Account Validation changes added starts
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBG('Inside WNDF of ofs account');
SELECT COUNT(1)
INTO L_COUNT
FROM STTM_VIRTUAL_ACCOUNTS
WHERE VIR_ACC_NO = P_TY_RETAILTLR_UPD.OFS_ACC;
DBG('l_count value is : ' || L_COUNT);
IF L_COUNT > 0 THEN
DBG('Inside if of l_count>0');
IF NOT

STPKS_VIRTUALACC_UTILS.FN_RESOLVE_VIR_ACC(P_TY_RETAILTLR_UPD.OFS_ACC,

P_TY_RETAILTLR_UPD.OFS_CCY,

P_TY_RETAILTLR_UPD.OFS_BRANCH,
L_ACC,
L_VIR_ACC_NAME,
L_IS_VIR_ACC,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('Virtual Account Not Found');
END IF;
END IF;
END;
P_TY_RETAILTLR_UPD.OFS_ACC := L_ACC;
-- Virtual Account Validation changes added ends
--AEDMBU UATA DEFLT00009813 Changes end

WHEN OTHERS THEN


DBG(' fails in select for ac_or_gl' || SQLERRM);
END;
DBG('l_ac_or_gl' || L_AC_OR_GL);

--AEDMBU UATA DEFLT00009177 Changes statrs


-- DEFLT00019681 changes start
/*
IF l_ac_or_gl = 'A'
THEN
BEGIN
SELECT ac_stat_frozen
INTO l_ac_stat_frozen
FROM sttm_cust_account
WHERE cust_ac_no = p_ty_retailtlr_upd.ofs_acc AND
branch_code = p_ty_retailtlr_upd.ofs_branch;
IF l_ac_stat_frozen = 'Y'
THEN
dbg('ofs Account in Frozen State');
l_err_code:='FT-VAC08';
ovpks.pr_appendtbl('FT-VAC08', p_ty_retailtlr_upd.ofs_acc);
p_ret := -1;
RETURN FALSE;
END IF;
END;
END IF;
*/
-- DEFLT00019681 changes end
--AEDMBU UATA DEFLT00009177 Changes ends
IF L_AC_OR_GL = 'L' THEN
BEGIN
----lm2
DBG('Inside select for RT lending product flag');
SELECT NVL(RETAIL_LENDING_PRODUCT, 'N')
INTO L_RT_LEND_FLAG
FROM DETM_RT_PREFERENCES
WHERE PRODUCT_CODE = P_TY_RETAILTLR_UPD.PRODUCT_CODE;
EXCEPTION
WHEN OTHERS THEN
DBG(' fails in select for RT lending product flag' || SQLERRM);
END;
DBG('l_rt_lend_flag2' || L_RT_LEND_FLAG);
IF L_RT_LEND_FLAG = 'N' THEN
DBG('l_rt_lend_flag' || L_RT_LEND_FLAG);
OVPKSS.PR_APPENDTBL('RT-CL-002', NULL);
P_RET := -1;
RETURN FALSE;
END IF;
END IF;
END IF;

IF P_TY_RETAILTLR_UPD.TXN_ACC IS NOT NULL THEN


L_ACC := P_TY_RETAILTLR_UPD.TXN_ACC;
DBG(' txn l_acc' || L_ACC);
BEGIN
DBG('inside select for loan product validation');
SELECT AC_OR_GL
INTO L_AC_OR_GL
FROM STTB_ACCOUNT
WHERE AC_GL_NO = L_ACC
AND BRANCH_CODE = P_TY_RETAILTLR_UPD.TXN_BRANCH;
EXCEPTION
--AEDMBU UATA DEFLT00009813 Changes start
WHEN NO_DATA_FOUND THEN
DBG('checking if it is an g.l');
BEGIN
-- Virtual Account Validation changes added begin
SELECT AC_OR_GL
INTO L_AC_OR_GL
FROM STTB_ACCOUNT
WHERE AC_GL_NO = L_ACC;
-- Virtual Account Validation changes added starts
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBG('Inside WNDFof txn acc');
SELECT COUNT(1)
INTO L_COUNT
FROM STTM_VIRTUAL_ACCOUNTS
WHERE VIR_ACC_NO = P_TY_RETAILTLR_UPD.TXN_ACC;
DBG('l_count value is : ' || L_COUNT);
IF L_COUNT > 0 THEN
DBG('Inside if of l_count>0');
/* --psakshi changes start
if NVL(GWPKS_UTIL.PKG_FUNC, '***') IN ('1006') then
L_ACC := P_TY_RETAILTLR_UPD.TXN_ACC;
else
--psakshi changes end*/
IF NOT

STPKS_VIRTUALACC_UTILS.FN_RESOLVE_VIR_ACC(P_TY_RETAILTLR_UPD.TXN_ACC,

P_TY_RETAILTLR_UPD.TXN_CCY,

P_TY_RETAILTLR_UPD.TXN_BRANCH,
L_ACC,
L_VIR_ACC_NAME,
L_IS_VIR_ACC,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('Virtual Account Not Found');
END IF;
/* end if; --psakshi changes*/
END IF;
END;
P_TY_RETAILTLR_UPD.TXN_ACC := L_ACC;
-- Virtual Account Validation changes added ends
--AEDMBU UATA DEFLT00009813 Changes end

WHEN OTHERS THEN


DBG(' fails in select for ac_or_gl' || SQLERRM);
END;
DBG('l_ac_or_gl' || L_AC_OR_GL);
DBG('txn account' || P_TY_RETAILTLR_UPD.TXN_ACC);
DBG('offset account' || P_TY_RETAILTLR_UPD.OFS_ACC);
DBG('txn branch' || P_TY_RETAILTLR_UPD.TXN_BRANCH);
DBG('offset branch' || P_TY_RETAILTLR_UPD.OFS_BRANCH);
--AEDMBU UATA DEFLT00009177 Changes statrs
-- DEFLT00019681 changes start -- commented the below condition
/*
IF l_ac_or_gl = 'A'
THEN
BEGIN
SELECT ac_stat_frozen
INTO l_ac_stat_frozen
FROM sttm_cust_account
WHERE cust_ac_no = p_ty_retailtlr_upd.txn_acc AND
branch_code = p_ty_retailtlr_upd.txn_branch;
IF l_ac_stat_frozen = 'Y'
THEN
dbg('txn Account in Frozen State');
ovpks.pr_appendtbl('FT-VAC08',
p_ty_retailtlr_upd.txn_acc);
p_ret := -1;
RETURN FALSE;
END IF;
END;
END IF;
-- DEFLT00019681 changes end

*/
--AEDMBU UATA DEFLT00009177 Changes ends
IF L_AC_OR_GL = 'L' THEN
BEGIN
----lm2
DBG('Inside select for RT lending product flag');
SELECT NVL(RETAIL_LENDING_PRODUCT, 'N')
INTO L_RT_LEND_FLAG
FROM DETM_RT_PREFERENCES
WHERE PRODUCT_CODE = P_TY_RETAILTLR_UPD.PRODUCT_CODE;
EXCEPTION
WHEN OTHERS THEN
DBG(' fails in select for RT lending product flag' || SQLERRM);
END;
DBG('l_rt_lend_flag2' || L_RT_LEND_FLAG);
IF L_RT_LEND_FLAG = 'N' THEN
DBG('l_rt_lend_flag' || L_RT_LEND_FLAG);
OVPKSS.PR_APPENDTBL('RT-CL-002', NULL);
P_RET := -1;
RETURN FALSE;
END IF;
END IF;
END IF;

-----------------------------------------------------------------------------------

--FCUBS V.UM 11.0.0.0.0.0.0 - 9NT1316 - Lokesh M Validation for CL changes end

-----------------------------------------------------------------------------------
-----------------------
--Post Golive changes <18-Apr-2015> starts
IF CSPKS_REQ_GLOBAL.G_HEADER.EXISTS('FUNCTIONID') THEN
L_FUNCTIONID := CSPKS_REQ_GLOBAL.G_HEADER('FUNCTIONID');
ELSE
L_FUNCTIONID := 'XXXX';
END IF;
DBG('l_functionid----> ' || L_FUNCTIONID);
DBG('l_sourcecode----> ' || P_TY_RETAILTLR_UPD.SCODE);

IF P_TY_RETAILTLR_UPD.SCODE <> 'FLEXSWITCH' AND


NVL(L_FUNCTIONID, 'IFDDEDRT') <> 'IFDDEDRT' THEN

--Post Golive changes <18-Apr-2015> ends

--11.0 SFR 1072 start


-- For SWITCH , if non-fin txn has to be charged .. both accounts will be
same
--FCUBS V.UM 11.0.0.0.0.0.0 - 9NT1316 - SFR 814 start
IF P_TY_RETAILTLR_UPD.TXN_ACC = P_TY_RETAILTLR_UPD.OFS_ACC AND
P_TY_RETAILTLR_UPD.TXN_BRANCH = P_TY_RETAILTLR_UPD.OFS_BRANCH AND
P_TY_RETAILTLR_UPD.TXN_CCY = P_TY_RETAILTLR_UPD.OFS_CCY -- 11.0 SFR 976
THEN
OVPKSS.PR_APPENDTBL('WB-TXN-002', NULL);
P_RET := -1;
RETURN FALSE;
END IF;
--FCUBS V.UM 11.0.0.0.0.0.0 - 9NT1316 - SFR 814 ends
END IF; --11.0 SFR 1072 end

--''''''''''''''''''''''''''''''''''''''''''''''''
-- if any error raised while validating branch code then further no need to
validate accounts
IF FN_IS_AN_ERROR_RAISED(P_RET) THEN
DBG('E', 'Error found in function fn_validate_rtl_teller_rec..');
RETURN FALSE;
END IF;
--''''''''''''''''''''''''''''''''''''''''''''''''
--FCUBS 10.1 Switch Interface Tuning Changes starts
--Validation is there in depks_rtl_teller
/*IF p_ty_retailtlr_upd.txn_acc IS NOT NULL
THEN
dbg('Value received for p_ty_retailtlr_upd.txn_acc ' ||
p_ty_retailtlr_upd.txn_acc);
IF NOT fn_validate_txn_acc(p_ty_retailtlr_upd, p_ret)
THEN
DBG('l_sttb_ofs_acc_idx==>' || l_sttb_ofs_acc_idx);
--dbg('failed while validating OFS Account ' ||
tbl_sttb_account(l_sttb_ofs_acc_idx).ty_sttb_account.ac_gl_no);
p_ret := -1;
--RETURN FALSE;
END IF;
END IF;
--''''''''''''''''''''''''''''''''''''''''''''''''
dbg('Validating ofs_acc');
dbg('p_ty_retailtlr_upd.ofs_acc ' || p_ty_retailtlr_upd.ofs_acc);
--IF p_ty_retailtlr_upd.ofs_acc IS NOT NULL --FCUBS10.0LOT3 changes
IF p_ty_retailtlr_upd.ofs_acc IS NOT NULL AND
p_ty_retailtlr_upd.ofs_branch IS NOT NULL
THEN
dbg('Value received for p_ty_retailtlr_upd.ofs_acc ' ||
p_ty_retailtlr_upd.ofs_acc);
IF NOT fn_validate_ofs_acc(p_ty_retailtlr_upd, p_ret)
THEN
dbg('failed while validating OFS Account ' ||
tbl_sttb_account(l_sttb_ofs_acc_idx).ty_sttb_account.ac_gl_no);
p_ret := -1;
--RETURN FALSE;
END IF;
END IF; */
--FCUBS 10.1 Switch Interface Tuning Changes ends
--''''''''''''''''''''''''''''''''''''''''''''''''
IF P_TY_RETAILTLR_UPD.REL_CUSTOMER IS NOT NULL THEN
IF NOT
FN_VALIDATE_REL_CUSTOMER(P_TY_RETAILTLR_UPD.REL_CUSTOMER, P_RET) THEN
DBG('E', 'Error found in function fn_validate_rtl_teller_rec..');
--RETURN FALSE;
END IF;
END IF;
--''''''''''''''''''''''''''''''''''''''''''''''''
--FCUBS10.2 RETRO Changes for sfr 284 Starts Here
DBG('p_ty_retailtlr_upd.amount-------->' ||
P_TY_RETAILTLR_UPD.OFS_AMOUNT);
IF P_TY_RETAILTLR_UPD.OFS_AMOUNT < 0 THEN
DBG('failed while validating l_txn_limit : txn_amount > l_txn_limit');
OVPKSS.PR_APPENDTBL('DE-TUD-100', NULL);
P_RET := -1;
RETURN FALSE;
END IF;
--FCUBS10.2 RETRO Changes for sfr 284 Ends Here

--FCUBS10.3 SFR 2161


IF P_TY_RETAILTLR_UPD.SCODE <> 'FLEXSWITCH' THEN
IF P_TY_RETAILTLR_UPD.TXN_AMOUNT < 0 THEN
DBG('failed while validating txn_Amount < 0');
OVPKSS.PR_APPENDTBL('DE-TUD-100', NULL);
P_RET := -1;
RETURN FALSE;
END IF;

--FCUBS10.3 SFR 248 If (nvl(p_Ty_Retailtlr_Upd.Ofs_Amount,0) = 0) AND


(nvl(p_Ty_Retailtlr_Upd.txn_Amount,0) = 0)
IF (P_TY_RETAILTLR_UPD.OFS_AMOUNT = 0) OR
(P_TY_RETAILTLR_UPD.TXN_AMOUNT = 0) THEN
DBG('failed while validating : both amounts are 0');
OVPKSS.PR_APPENDTBL('DE-TUD-101', NULL);
P_RET := -1;
RETURN FALSE;
END IF;
END IF;
--FCUBS10.3 SFR 2161
---AEDMBU UATA SFR#DEFLT00009055 Changes

IF P_TY_RETAILTLR_UPD.SCODE = 'FLEXBRANCH' THEN


DBG('gwpks_util.pkg_func ' || GWPKS_UTIL.PKG_FUNC);
SELECT COUNT(*)
INTO L_TXN_CNT
FROM CSTMS_BRANCH_FUNC_DEFN
WHERE FUNCTIONID = GWPKS_UTIL.PKG_FUNC
AND TXNCATEGORY = 'C'
AND 'I' IN (TXN_LEG_CASH, OFS_LEG_CASH);

IF L_TXN_CNT > 0 THEN


IF NOT FN_VALIDATE_TILL_LIMIT_NEW(GLOBAL.CURRENT_BRANCH,
GWPKS_UTIL.G_TILL_ID,
L_ERR_CODE) THEN
DBG('Error in fn_validate_till_limit ' || L_ERR_CODE);
P_RET := -1;
RETURN FALSE;
END IF;

END IF;

-- FCUBS_11.2.0.0.0_$BOMLAE_R18 FCYatBranch Start


IF CSPKS_REQ_GLOBAL.G_RELEASE_TYPE IN
(CSPKS_REQ_GLOBAL.P_CLUSTER, CSPKS_REQ_GLOBAL.P_CUSTOM) THEN
L_FN_CALL_ID := 1;
L_TB_CLUSTER_DATA := L_TB_EMPTY_CLUSTER_DATA;
DBG('Calling Gwpks_Queryretailteller_cluster.fn_validate_till_limit_new');
IF NOT

DEPKS_RTLTELLERUPLOAD_CLUSTER.FN_VALIDATE_TILL_LIMIT_NEW(P_TY_RETAILTLR_UPD,

GLOBAL.CURRENT_BRANCH,
GWPKS_UTIL.G_TILL_ID,
L_FN_CALL_ID,

L_TB_CLUSTER_DATA,
L_ERR_CODE)
THEN

DBG('Failed in call to fn_build_rtdetails..');


P_RET := -1;
RETURN FALSE;
END IF;
END IF;
-- FCUBS_11.2.0.0.0_$BOMLAE_R18 FCYatBranch End

DBG('before in fn_validate_User_Input_limit ' || L_ERR_CODE);


IF NOT FN_VALIDATE_USER_INPUT_LIMIT(GLOBAL.USER_ID,
P_TY_RETAILTLR_UPD.TXN_CCY,
NVL(P_TY_RETAILTLR_UPD.TXN_AMOUNT,
P_TY_RETAILTLR_UPD.OFS_AMOUNT),
GLOBAL.CURRENT_BRANCH,
L_ERR_CODE) THEN
IF (L_ERR_CODE = 'DE-MLT42') THEN
DBG('user input limit failed fn_validate_User_Input_limit ' ||
L_ERR_CODE);
ELSE
P_RET := -1;
DBG('error occured ' || L_ERR_CODE);
END IF;
END IF;
END IF;

---AEDMBU UATA SFR#DEFLT00009055 Changes


-- For Validating the txn_amount with the Txn_Amount_limit for the product
starts
IF NOT FN_VALIDATE_TXN_AMT_LIMITS(P_TY_RETAILTLR_UPD.PRODUCT_CODE,
P_TY_RETAILTLR_UPD.TXN_AMOUNT,
P_RET) THEN
DBG('E', 'Failed while validating fn_validate_rtl_teller_rec');
P_RET := -1;
END IF;
-- FCC 5.4 - For Validating the txn_amount with the Txn_Amount_limit for the
product ends
--''''''''''''''''''''''''''''''''''''''''''''''''
--------------------------------------------------

--VIRTUAL ACCOUNT CHANGE starts

IF (NVL(GWPKS_UTIL.PKG_FUNC, '***') = '1401' /*OR

nvl(gwpks_util.pkg_func, '***') = '8207'*/


OR NVL(GWPKS_UTIL.PKG_FUNC, '***') = '1006' OR
NVL(GWPKS_UTIL.PKG_FUNC, '***') = '1408' OR
NVL(GWPKS_UTIL.PKG_FUNC, '***') = '1402' --BOMALE TCR Changes
OR nvl(gwpks_util.pkg_func, '***') = 'ITM1' --BOMALE ITM Changes
OR nvl(gwpks_util.pkg_func, '***') = 'ITM4' --BOMALE ITM Changes
) OR P_TY_RETAILTLR_UPD.SCODE = 'FLEXSWITCH' -- 1203_ITR1_18380572
THEN
-- Parul Changes, added one more variable , G_DRVIRACCNO
IF NOT FN_VALIDATE_VIRTUAL_ACC(G_VIRACCNO,G_DRVIRACCNO, P_TY_RETAILTLR_UPD,
P_RET) THEN
P_RET := -1;
RETURN FALSE;
END IF;
END IF;
--VIRTUAL ACCOUNT CHANGE ends

/*-- MBU22 - 11.2.0.1.0BOMLAE? changes start


-- 1. << validating till amount>>
IF p_ty_retailtlr_upd.scode = 'FLEXBRANCH' THEN
dbg('gwpks_util.pkg_func ' || gwpks_util.pkg_func);
SELECT COUNT(*)
INTO l_txn_cnt
FROM cstms_branch_func_defn
WHERE functionid = gwpks_util.pkg_func
AND txncategory = 'C'
AND 'I' IN (TXN_LEG_CASH, OFS_LEG_CASH);

IF l_txn_cnt > 0 THEN


IF NOT fn_validate_till_limit(GLOBAL.current_branch,
gwpks_util.G_TILL_ID,
l_err_code) THEN
dbg('Error in fn_validate_till_limit ' || l_err_code);
p_ret := -1;
END IF;
END IF;

-- 2. <validating for not to do any transaction in HO account


IF p_ty_retailtlr_upd.txn_branch = GLOBAL.head_office AND
GLOBAL.current_branch <> GLOBAL.head_office THEN
ovpkss.pr_appendtbl('SM-HOACC', p_ty_retailtlr_upd.txn_acc);
dbg('Head office account' || p_ty_retailtlr_upd.txn_acc);
END IF;
END IF;
-- MBU22 - 11.2.0.1.0BOMLAE?<<CHANGES END>> */

----------------------------------------------------

-- FCUBS_11.2.0.0.0$BOMLAE_Customer_Choreography_Financial_Transactions start
--IF gwpks_util.pkg_actType = 'SAVEAUTOAUTH' AND G_UPD_REF IS NOT NULL --
GWPKS_UTIL.PKG_FUNC IN ('1401') --AND gwpks_util.pkg_actType = 'ENRICH' THEN --IN
('1401',' ',' ')
--IF gwpks_util.pkg_actType in('SAVEAUTOAUTH','ENRICH') AND G_UPD_REF IS NOT
NULL -- For EIDA Scan
-- Commented the above condition and added below for EIDA Scan
IF (gwpks_util.pkg_actType in ('SAVEAUTOAUTH') AND
G_UPD_REF IS NOT NULL) Or
(gwpks_util.pkg_actType = 'ENRICH' And
(DEPKS_RETAILTELLERUPLOAD.G_SND_OTP = 'A' or
DEPKS_RTL_TELLER_CUSTOM.G_SND_OTP = 'A') and G_UPD_REF IS NOT NULL) THEN
dbg('In IF for EIDA SAVEAUTOAUTH check');
BEGIN
SELECT cust_no
INTO l_cust_no
FROM sttm_cust_account
WHERE cust_ac_no = P_TY_RETAILTLR_UPD.TXN_ACC
AND branch_code = P_TY_RETAILTLR_UPD.BRANCH_CODE;
EXCEPTION
WHEN OTHERS THEN
dbg('Failed in getting customer number');
END;

BEGIN
SELECT mobile_number, e_mail
INTO l_mob, l_email
FROM sttms_cust_personal
WHERE sttms_cust_personal.customer_no = L_CUST_NO;
dbg('Fetched mobile number :' || l_mob);
dbg('Fetched e-mail address :' || l_email);
EXCEPTION
WHEN OTHERS THEN
dbg('Failed in fetching mobile no and email');
END;

dbg('aj testing rtltellerupload G_UPD_REF ' || G_UPD_REF);


dbg('gwpks_util.pkg_actType ' || gwpks_util.pkg_actType);
dbg('G_OTP_TXT ' || G_OTP_TXT);
dbg('G_SIG_VER ' || G_SIG_VER);
/* dbg('G_SND_OTP :~' || G_SND_OTP || '~');
IF G_UPD_REF IS NOT NULL AND G_SND_OTP = 'D' AND G_SIG_VER = 'N' THEN
dbg('Signature Checkbox Verification starts');
L_ERR_CODE := 'CS-EIDA-006';
L_ERR_PARAM := NULL;
OVPKS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
END IF;*/

/* IF G_UPD_REF IS NOT NULL AND G_SND_OTP IS NULL THEN


-- IN (NULL,'')
dbg('EIDA Ops not performed');
L_ERR_CODE := 'CS-EIDA-005';
L_ERR_PARAM := NULL;
OVPKS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
END IF;
*/ /*
IF l_cust_no IS NOT NULL THEN
IF l_mob IS NULL AND l_email IS
NULL THEN
dbg('Mobile number and email
not present');
ovpks.pr_appendtbl('CS-EIDA-
007', NULL);
ELSIF l_mob IS NULL OR l_email
IS NULL THEN
dbg('Mobile number or email
not present');
ovpks.pr_appendtbl('CS-EIDA-
007', NULL);
END IF;
END IF;*/
/*
IF G_UPD_REF IS NOT NULL AND G_SND_OTP IN ('S', 'E') --AND G_OTP_TXT IS
NOT NULL
THEN
dbg('Begin EIDA Validation for : ' ||
P_TY_RETAILTLR_UPD.TRN_REF_NO);
dbg('EIDA Number : ' || G_UPD_REF);
dbg('Calling cspks_otp_process.fn_validate_otp()');
l_otp_val := cspks_otp_process.fn_validate_otp(global.current_branch,
G_UPD_REF,

P_TY_RETAILTLR_UPD.Xref,
G_OTP_TXT,
L_ERR_CODE);
dbg('Done with cspks_otp_process.fn_validate_otp()');

IF NOT l_otp_val THEN


dbg('OTP is invalid or incorrect');
P_RET := -1;
END IF;

\* dbg('Begin EIDA Logging for : ' ||


P_TY_RETAILTLR_UPD.TRN_REF_NO);
dbg('EIDA Number : ' || G_UPD_REF);
dbg('Timestamp is :' ||
to_timestamp(global.application_date, 'DD-MON-YY HH:MI:SS AM'));
dbg('Calling cspks_otp_process.fn_eida_operation_log()');

IF NOT cspks_otp_process.fn_eida_operation_log(global.current_branch,
global.user_id,
G_UPD_REF,

P_TY_RETAILTLR_UPD.Xref,
GWPKS_UTIL.PKG_FUNC,

to_char(global.application_date,
'DD-MON-YY
HH:MI:SS AM'),

P_TY_RETAILTLR_UPD.TXN_ACC,
G_DOC_REF,
G_SND_OTP,
L_ERR_CODE) THEN
dbg('Failed in EIDA logging');
END IF;
dbg('Done with cspks_otp_process.fn_eida_operation_log()');*\

END IF;
IF G_UPD_REF IS NOT NULL AND G_OTP_GEN = 'A' THEN
--call Scan Functionality
dbg('Scan');
END IF;

dbg('Begin EIDA Logging for : ' || P_TY_RETAILTLR_UPD.TRN_REF_NO);


dbg('EIDA Number : ' || G_UPD_REF);
dbg('Timestamp is :' ||
TO_DATE(TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS'),
'YYYY/MM/DD HH24:MI:SS'));
dbg('Calling cspks_otp_process.fn_eida_operation_log()');

IF NOT cspks_otp_process.fn_eida_operation_log(global.current_branch,
global.user_id,
G_UPD_REF,
P_TY_RETAILTLR_UPD.Xref,
GWPKS_UTIL.PKG_FUNC,
TO_DATE(TO_CHAR(SYSDATE,
'YYYY/MM/DD HH24:MI:SS'),
'YYYY/MM/DD
HH24:MI:SS'),

P_TY_RETAILTLR_UPD.TXN_ACC,
G_DOC_REF,
G_SND_OTP,
L_ERR_CODE) THEN
dbg('Failed in EIDA logging');
END IF;
dbg('Done with cspks_otp_process.fn_eida_operation_log()');
*/
BEGIN
INSERT INTO detb_rtl_teller_custom
(trn_ref_no,
upload_ref_no,
otp_text,
send_otp_to,
sign_verified,
original_verified,
doc_ref_no,
otp_generated,
cust_ac_no)
VALUES
(P_TY_RETAILTLR_UPD.Xref,
G_UPD_REF,
G_OTP_TXT,
G_SND_OTP,
G_SIG_VER,
G_ORG_VER,
G_DOC_REF,
G_OTP_GEN,
P_TY_RETAILTLR_UPD.TXN_ACC);
dbg('Cust table Insertion successful');
EXCEPTION
WHEN OTHERS THEN
dbg('Failed to insert into custom table');
END;
END IF;

/* IF gwpks_util.pkg_actType = 'ENRICH' AND GWPKS_UTIL.PKG_FUNC IN ('1401')


THEN
dbg('Inside IF for OTP Gen G_OTP_GEN '||G_OTP_GEN);
dbg('Inside IF for OTP Gen G_UPD_REF '||G_UPD_REF);
dbg('Inside IF for OTP Gen P_TY_RETAILTLR_UPD.TRN_REF_NO'||
P_TY_RETAILTLR_UPD.TRN_REF_NO);
IF G_OTP_GEN = 'Y' THEN --CSPKS_REQ_GLOBAL.G_HEADER('ACTION') IN ('OTPGEN')
THEN

dbg('Generating OTP for : '|| P_TY_RETAILTLR_UPD.TRN_REF_NO);


dbg('EIDA Number : '||G_UPD_REF);
dbg('Calling cspks_otp_process.fn_generate_otp()');

IF NOT cspks_otp_process.fn_generate_otp(global.current_branch,
G_UPD_REF,
P_TY_RETAILTLR_UPD.TRN_REF_NO,
L_ERR_CODE)
THEN
dbg('Failed in OTP Gen');
END IF;
dbg('Done with cspks_otp_process.fn_generate_otp()');
END IF;
END IF;*/

-- FCUBS_11.2.0.0.0$BOMLAE_Customer_Choreography_Financial_Transactions end

--AN-FCUBS_11 2_0_0_0$BOMLAE_R29_13057_OnUs cheque posting start


if GWPKS_UTIL.PKG_FUNC IN ('1013', '1012') AND
gwpks_util.pkg_actType = 'SAVEAUTOAUTH' then
dbg('Trying to insert TP details ' || G_TRN_REF_NO);
BEGIN
INSERT INTO DETBS_RTL_TELLER_CUSTOM
(TRN_REF_NO,
TP_ID_TYPE,
TP_ID_VALUE,
TP_NATIONALITY,
TP_CUSTOMER_TYPE,
TP_ACCOUNT_NO)
VALUES
(G_TRN_REF_NO,
G_ID_TYPE,
G_ID_VALUE,
G_NATIONALITY,
G_CUST_TYPE,
G_ACCOUNT_NO);

EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
UPDATE DETBS_RTL_TELLER_CUSTOM
SET TP_ID_TYPE = G_ID_TYPE,
TP_ID_VALUE = G_ID_VALUE,
TP_NATIONALITY = G_NATIONALITY,
TP_CUSTOMER_TYPE = G_CUST_TYPE,
TP_ACCOUNT_NO = G_ACCOUNT_NO
WHERE TRN_REF_NO = G_TRN_REF_NO;
dBG('Dup val on index..updated rows count :' || SQL%ROWCOUNT);
WHEN OTHERS THEN
dbg('Failed to insert into custom table ' || SQLERRM);
END;
END IF;
--AN-FCUBS_11 2_0_0_0$BOMLAE_R29_13057_OnUs cheque posting end
IF FN_IS_AN_ERROR_RAISED(P_RET) THEN
DBG('E', 'Error found in function fn_validate_rtl_teller_rec..');
RETURN FALSE;
END IF;
--''''''''''''''''''''''''''''''''''''''''''''''''
DBG('Successfully finished function fn_validate_rtl_teller_rec');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_rtl_teller_rec with sqlerrm : ' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-002', NULL);
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_RTL_TELLER_REC;
------------------------------------------------
FUNCTION FN_VALIDATE_INCOMING_DATA(P_TY_RETAILTLR_UPD IN OUT
DETB_UPLOAD_RTL_TELLER%ROWTYPE --typeconv typ_retail_teller_rec
,
P_TY_TBLCHGDETS IN OUT TYP_TBLCHGDETS,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS
L_ERR_CODE ERTBS_MSGS.ERR_CODE%TYPE;
L_ERR_PARAM ERTBS_MSGS.ERR_CODE%TYPE;
BEGIN
DBG('Inside fn_validate_incoming_data...');
-------------------
IF NOT FN_VALIDATE_RTL_TELLER_REC(P_TY_RETAILTLR_UPD, P_RET) THEN
DBG('Failed while validating p_ty_retail_teller record..');
P_RET := -1;
RETURN FALSE;
END IF;
-------------------
IF NOT FN_VALIDATE_CHGDETS(P_TY_TBLCHGDETS, P_RET) THEN
DBG('Failed while validating p_ty_retail_teller record..');
P_RET := -1;
RETURN FALSE;
END IF;

-------------------
DBG('Successfully finished fn_validate_incoming_data...');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_validate_incoming_data with sqlerrm : ' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-002', NULL);
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_INCOMING_DATA;
------------------------------------------------

FUNCTION FN_IS_ACC_A_GL(P_BRANCH_CODE IN VARCHAR2,


P_ACC_NO IN VARCHAR2,
P_CCY OUT VARCHAR2,
P_RET IN OUT VARCHAR2,
P_ERR_CODE IN OUT VARCHAR2,
P_ERR_PARAM IN OUT VARCHAR2) RETURN BOOLEAN IS
L_STTB_ACC_IDX VARCHAR(23); -- len(branch_code + acc) : index for
tbl_sttb_account
----------------------------
BEGIN
DBG('Inside function fn_is_acc_a_gl');
L_STTB_ACC_IDX := P_BRANCH_CODE || P_ACC_NO;

IF NOT TBL_STTB_ACCOUNT.EXISTS(L_STTB_ACC_IDX) THEN


TBL_STTB_ACCOUNT(L_STTB_ACC_IDX).TY_STTB_ACCOUNT.BRANCH_CODE :=
P_BRANCH_CODE;
TBL_STTB_ACCOUNT(L_STTB_ACC_IDX).TY_STTB_ACCOUNT.AC_GL_NO := P_ACC_NO;

IF NOT CVPKS_UTILS.GET_STTB_ACC(P_BRANCH_CODE,
P_ACC_NO,
TBL_STTB_ACCOUNT(L_STTB_ACC_IDX)
.TY_STTB_ACCOUNT) THEN
RETURN FALSE;
END IF;
END IF;

-- ''''''''''''''''''''''''''''''

IF TBL_STTB_ACCOUNT(L_STTB_ACC_IDX).TY_STTB_ACCOUNT.AC_OR_GL = 'G' THEN


RETURN TRUE;
ELSE
P_CCY := TBL_STTB_ACCOUNT(L_STTB_ACC_IDX).TY_STTB_ACCOUNT.AC_GL_CCY;
RETURN FALSE;
END IF;
-- ''''''''''''''''''''''''''''''

EXCEPTION
WHEN OTHERS THEN
DBG('E',
'Failed in function fn_is_acc_a_gl for Acc No :' || P_ACC_NO ||
' and branch_code :' || P_BRANCH_CODE || ' with error : ' ||
SQLERRM);
P_CCY := NULL;
RETURN FALSE;
END FN_IS_ACC_A_GL;

-----------------------------------------------------------------------------------
----

FUNCTION FN_UPLOAD_MCKDETAIS(P_TY_RETAIL_TELLER IN DETBS_RTL_TELLER%ROWTYPE --


typeconv typ_retail_teller_rec
,
P_TY_MCKDETAILS IN OUT ISVW_MCK_DETAILS%ROWTYPE
--typeconv typ_mckdetails_fjb
,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS
BEGIN
DBG('Inside fn_upload_mckdetais....');
---------------------
P_TY_MCKDETAILS.CONTRACT_REF_NO := P_TY_RETAIL_TELLER.TRN_REF_NO;
P_TY_MCKDETAILS.EVENT_SEQ_NO := 1;
P_TY_MCKDETAILS.AMOUNT_TAG := 'TXN_AMT';
P_TY_MCKDETAILS.ACC_BRANCH := P_TY_RETAIL_TELLER.TXN_BRANCH;
P_TY_MCKDETAILS.ACC_CCY := P_TY_RETAIL_TELLER.TXN_CCY;
P_TY_MCKDETAILS.GENERATION_DATE := P_TY_RETAIL_TELLER.TRN_DT;
P_TY_MCKDETAILS.ACCOUNT := P_TY_RETAIL_TELLER.TXN_ACC;
P_TY_MCKDETAILS.SETTLEMENT_AMT := P_TY_RETAIL_TELLER.TXN_AMOUNT;
P_TY_MCKDETAILS.PAYMENT_BY := 'I';

DBG('p_ty_mckdetails.ULT_BENEFICIARY1 in p_ty_mckdetails' ||
P_TY_MCKDETAILS.ULT_BENEFICIARY1);
BEGIN
INSERT INTO ISVWS_MCK_DETAILS VALUES P_TY_MCKDETAILS;
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
OVPKSS.PR_APPENDTBL('IF-DAT006', P_TY_RETAIL_TELLER.XREF || '~');
P_RET := -1;
RETURN FALSE;
WHEN OTHERS THEN
DBG(' Ora error occured during DE Cheque-Details insert' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('IF-DAT001', NULL);
P_RET := -1;
RETURN FALSE;
END;
---------------------
DBG('finished fn_upload_mckdetais successfully.');
P_RET := 0;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('In exception while executing fn_upload_mckdetais with sqlerrm : ' ||
SQLERRM);
P_RET := -1;
OVPKSS.PR_APPENDTBL('XXXX', NULL);
RETURN FALSE;
END;

FUNCTION FN_VALIDATE_SUBSYSTEMS(P_TY_RETAILTLR_UPD IN DETB_UPLOAD_RTL_TELLER


%ROWTYPE --typeconv typ_retail_teller_rec
,
P_TBL_CHGDETS IN OUT TYP_TBLCHGDETS,
P_UPL_MIS_DET IN OUT
MITBS_UPLOAD_CLASS_MAPPING%ROWTYPE,
P_UPL_UDF_DET IN OUT
UVPKSS_UDF_UPLOAD.TY_UPL_CONT_UDF,
P_TY_MCKDETAILS IN OUT ISTB_UPLOAD_CONTRACTIS
%ROWTYPE --typeconv typ_mckdetails_fjb
,
P_TY_MSGDETS IN OUT CSTB_UPLOAD_ARC_SETTLE
%ROWTYPE --typeconv typ_msgdets_fjb
,
P_TBL_NODE_REC IN TYP_NODE_TBL,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS
L_ERR_CODE VARCHAR2(200);
L_ERR_PARAM VARCHAR2(2000);
BEGIN
DBG('Inside fn_validate_subsystems.............');
IF P_TBL_NODE_REC.EXISTS('Mis-Details') THEN
DBG('Validating Mis-Details');
DBG('XREF............:' || P_TY_RETAILTLR_UPD.XREF);
IF P_TY_RETAILTLR_UPD.SCODE <> 'CCDMNUSER' THEN
--AEDMBU QAPROD SFR#AEDMBUFCC0005 changes
P_UPL_MIS_DET.EXTERNAL_REF_NO := P_TY_RETAILTLR_UPD.XREF; --fc11.1 SFR 4252
defaulting xref which returns true otherwise
IF NOT MIPKSS_VALIDATE.FN_VALIDATE_MIS(P_UPL_MIS_DET,
P_TY_RETAILTLR_UPD.TXN_CCY,
'RT') THEN
DBG('Falied in MIS Validation in Mipks_Validate.fn_validate_mis');
OVPKSS.PR_APPENDTBL('RT-UPF-02', NULL);
RETURN FALSE;
END IF;
END IF; --AEDMBU QAPROD SFR#AEDMBUFCC0005 changes
END IF;
--~~~~~~~~~~~~~~~~~~~~~~~
IF P_TBL_NODE_REC.EXISTS('Udf-Details') THEN
DBG('Validating Udfdetails');
DBG('p_ty_retailtlr_upd.product_code :' ||
P_TY_RETAILTLR_UPD.PRODUCT_CODE);
IF NOT UVPKSS_UDF_UPLOAD.FN_VALIDATE_CONTRACT_UDF(P_UPL_UDF_DET,

P_TY_RETAILTLR_UPD.PRODUCT_CODE,
'NEW',
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('Falied in UDF Validation in
Uvpks_udf_upload.fn_Validate_Contract_Udf');
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;
END IF;
--~~~~~~~~~~~~~~~~~~~~~~~
DBG('Successfully fn_validate_subsystems.......');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('E', 'Failed in function fn_upload with error : ' || SQLERRM);
dbg('Backtrace ' || dbms_utility.format_error_backtrace);
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_SUBSYSTEMS;

---------------------------------------------------------------
FUNCTION FN_PICKUP_SUBSYSTEMS(P_TY_RETAIL_TELLER IN DETBS_RTL_TELLER%ROWTYPE --
typeconv typ_retail_teller_rec
,
P_TBL_CHGDETS IN OUT TYP_TBLCHGDETS,
P_UPL_MIS_DET IN OUT
MITBS_UPLOAD_CLASS_MAPPING%ROWTYPE,
P_UPL_UDF_DET IN OUT
UVPKSS_UDF_UPLOAD.TY_UPL_CONT_UDF,
P_TY_MCKDETAILS IN OUT ISVW_MCK_DETAILS%ROWTYPE
--typeconv typ_mckdetails_fjb
,
P_TY_MSGDETS IN OUT CSTBS_ARC_SETTLE%ROWTYPE
--typeconv typ_msgdets_fjb
,
P_TBL_NODE_REC IN TYP_NODE_TBL,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS
L_ERR_CODE VARCHAR2(200);
L_ERR_PARAM VARCHAR2(2000);
BEGIN

DBG('Inside fn_pickup_subsystems.............');
IF P_TBL_NODE_REC.EXISTS('Mis-Details') THEN
DBG('Calling MIS Referral...');
IF NOT
MIPKSS_REFERRAL.FN_GET_CON_DEFAULT(P_TY_RETAIL_TELLER.BRANCH_CODE,
P_TY_RETAIL_TELLER.TRN_REF_NO,
P_TY_RETAIL_TELLER.REL_CUSTOMER, --
AEDMBU QAPROD SFR#AEDMBUFCC0005 changes
P_TY_RETAIL_TELLER.TXN_CCY, --AEDMBU
QAPROD SFR#AEDMBUFCC0005 changes
P_TY_RETAIL_TELLER.PRODUCT_CODE) THEN
--AEDMBU QAPROD SFR#AEDMBUFCC0005 changes - added product_code
DBG('mipkss_referral.fn_get_con_default');
OVPKSS.PR_APPENDTBL('RT-UPF-01', NULL);
RETURN FALSE;
END IF;
END IF;
--~~~~~~~~~~~~~~~~~~~~~~~
IF P_TBL_NODE_REC.EXISTS('Udf-Details') THEN
DBG('Pickup UDFDETAILS');
DBG('Calling UDF Defaulting...');

IF NOT UVPKSS_SERVICES.FN_DEFAULT_FROM_PRODUCT(P_TY_RETAIL_TELLER.TRN_REF_NO,
1, --Latest Version No

P_TY_RETAIL_TELLER.PRODUCT_CODE,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('uvpkss_services.fn_default_from_product');
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;

IF NOT UVPKSS_UDF_UPLOAD.FN_PICKUP_CONT_UDF(P_TY_RETAIL_TELLER.TRN_REF_NO,
'RT',
P_TY_RETAIL_TELLER.PRODUCT_CODE,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('uvpkss_services.fn_default_from_product');
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;
END IF;
--~~~~~~~~~~~~~~~~~~~~~~~
DBG('Successfully fn_validate_subsystems.......');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('E', 'Failed in function fn_upload with error : ' || SQLERRM);
P_RET := -1;
RETURN FALSE;
END FN_PICKUP_SUBSYSTEMS;

---------------------------------------------------------------
FUNCTION FN_UPLOAD_SUBSYSTEMS(P_TY_RETAIL_TELLER IN DETBS_RTL_TELLER%ROWTYPE --
typeconv typ_retail_teller_rec
,
P_TBL_CHGDETS IN OUT TYP_TBLCHGDETS,
P_UPL_MIS_DET IN OUT
MITBS_UPLOAD_CLASS_MAPPING%ROWTYPE,
P_UPL_UDF_DET IN OUT
UVPKSS_UDF_UPLOAD.TY_UPL_CONT_UDF,
P_TY_MCKDETAILS IN OUT ISVW_MCK_DETAILS%ROWTYPE
--typeconv typ_mckdetails_fjb
,
P_TY_MSGDETS IN OUT CSTBS_ARC_SETTLE%ROWTYPE
--typeconv typ_msgdets_fjb
,
P_TBL_NODE_REC IN TYP_NODE_TBL,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS
L_ERR_CODE VARCHAR2(200);
L_ERR_PARAM VARCHAR2(2000);
-- l_pricing_currency VARCHAR2(3) := 'USD'; -- SS Temp
BEGIN
DBG('Inside fn_upload_subsystems.............');
-------------------
IF NOT FN_PICKUP_SUBSYSTEMS(P_TY_RETAIL_TELLER,
P_TBL_CHGDETS,
P_UPL_MIS_DET,
P_UPL_UDF_DET,
P_TY_MCKDETAILS,
P_TY_MSGDETS,
P_TBL_NODE_REC,
P_RET) THEN
DBG('error...');
END IF;
-------------------
IF P_TBL_NODE_REC.EXISTS('Mis-Details') THEN
DBG('Uploading Mis-Details');
IF NOT MIPKS_VALIDATE.FN_MIS_UPLOAD_TYPE(P_UPL_MIS_DET, -- IN OUT SHOULD BE
MADE IN AARON
P_TY_RETAIL_TELLER.TRN_REF_NO --
AARON
) THEN
DBG('Falied in Uvpks_udf_upload.fn_Contract_Udf_Upload_Type');
OVPKSS.PR_APPENDTBL('RT-UPF-01', NULL);
RETURN FALSE;
END IF;
END IF;
--~~~~~~~~~~~~~~~~~~~~~~~
IF P_TBL_NODE_REC.EXISTS('Udf-Details') THEN
DBG('Uploading Udfdetails');
DBG('Calling Uvpks_udf_upload.fn_Contract_Udf_Upload_Type for UDF Upload..');
IF NOT UVPKSS_UDF_UPLOAD.FN_CONTRACT_UDF_UPLOAD_TYPE('GWCRTRT',
P_TY_RETAIL_TELLER.XREF,

P_TY_RETAIL_TELLER.TRN_REF_NO,
1,

P_TY_RETAIL_TELLER.PRODUCT_CODE,
'NEW',
P_UPL_UDF_DET,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('Falied in Uvpks_udf_upload.fn_Contract_Udf_Upload_Type');
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;
END IF;
--~~~~~~~~~~~~~~~~~~~~~~~
DBG('Successfully fn_upload_subsystems.......');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('E', 'Failed in function fn_upload with error : ' || SQLERRM);
P_RET := -1;
RETURN FALSE;
END FN_UPLOAD_SUBSYSTEMS;

FUNCTION FN_DEFAULT_VALUES(P_TY_RETAIL_TELLER IN OUT DETBS_RTL_TELLER%ROWTYPE,


P_TBL_CHGDETS IN OUT TYP_TBLCHGDETS,
P_UPL_MIS_DET IN OUT MITBS_UPLOAD_CLASS_MAPPING
%ROWTYPE,
P_UPL_UDF_DET IN OUT
UVPKSS_UDF_UPLOAD.TY_UPL_CONT_UDF,
P_TY_MCKDETAILS IN OUT ISVW_MCK_DETAILS%ROWTYPE --
typeconv typ_mckdetails_fjb
,
P_TY_MSGDETS IN OUT CSTBS_ARC_SETTLE%ROWTYPE,
P_TBL_NODE_REC IN TYP_NODE_TBL,
P_FT IN CHAR,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS
L_CCY VARCHAR2(3);
--l_tmp_txn_amt NUMBER;
--l_rate_flag NUMBER;
-- l_brn pkg_arc_row.cod_offset_brn%TYPE;
L_ERR_CODE VARCHAR2(50);
L_ERR_PARAM VARCHAR2(100);
L_CUST VARCHAR2(9);
--l_app_date DATE;
--g_app_time DATE;
L_FTPROBLEM VARCHAR2(1) := 'N';
--l_ft VARCHAR2(1) := 'N';
L_ROUTECODE DETBS_RTL_TELLER.ROUTE_CODE%TYPE;
L_OFS_ACC DETBS_RTL_TELLER.OFS_ACC%TYPE;
L_OFS_BRN DETBS_RTL_TELLER.OFS_BRANCH%TYPE;
L_TXN_ACC DETBS_RTL_TELLER.TXN_ACC%TYPE;
L_TXN_BRN DETBS_RTL_TELLER.TXN_BRANCH%TYPE;
L_SETTLE_ROW CSTBS_ARC_SETTLE%ROWTYPE;
L_USR SMTB_USER.USER_ID%TYPE; --kernel staff restr retro
L_CUST_NO SMTB_USER.CUSTOMER_NO%TYPE; --kernel staff restr retro
----------------------------

l_creditcardno varchar2(1000); -- PR00003698 changes

BEGIN

--MBU47-FCUBS_11.2.0.4.0BOMLAE BranchID Default(1401,1001) START


DBG('TXN_ACCOUNT....... ' || P_TY_RETAIL_TELLER.VIR_ACC_NO);
DBG('BRANCH_CODE ' || P_TY_RETAIL_TELLER.BRANCH_CODE);
DBG('gwpks_util.pkg_func.. ' || GWPKS_UTIL.PKG_FUNC);
--dev temp changes
/*
IF gwpks_util.pkg_func in ( '1401', '1001') THEN

--if p_ty_retail_teller.TXN_BRANCH IS NULL THEN


begin
select branch_code
into p_ty_retail_teller.TXN_BRANCH
from sttb_account
where ac_gl_no = p_ty_retail_teller.TXN_ACC ;

Dbg('TXN BRANCH_CODE '||p_ty_retail_teller.TXN_BRANCH);


exception
when no_data_found then
null;
end;

END IF;
*/
--MBU47-FCUBS_11.2.0.4.0BOMLAE BranchID Default(1401,1001) END

-- ''''''''''''''''''
-- SSanjeev added : 10-NOV-06 Start : -- code added from gwpks_util_java
------------------------
-- QQQQQQ : what to do
--IF l_TransFields(1) = 'FCRH'
DBG('Sttting Online falg..............');
DBG('p_ty_msgdets .ORDERING_CUSTOMER1 3' ||
P_TY_MSGDETS.ORDERING_CUSTOMER1);
/* IF gwpkss_txn_control.g_from_branch
THEN
dbg('online flag set to TRUE1');
cspkss_tsupl_cont.set_online_flag(TRUE);
ELSE
IF p_ty_retail_teller.auth_stat = 'A'
THEN
dbg('online flag set to TRUE2');
cspkss_tsupl_cont.set_online_flag(TRUE);
ELSE
dbg('online flag set to FALSE3');
cspkss_tsupl_cont.set_online_flag(FALSE);
END IF;
END IF; */ --tempfix for SQA

--typeconv moved the call to here


--IF p_ty_retail_teller.ft = 'Y' ----FCUBS10.0LOT3
DBG('p_ty_msgdets .ORDERING_CUSTOMER1 before fn_default_FT_values' ||
P_TY_MSGDETS.ORDERING_CUSTOMER1 || ',P_FT=' || P_FT);
IF P_FT = 'Y' THEN
IF NOT FN_DEFAULT_FT_VALUES(P_TY_RETAIL_TELLER, P_TY_MSGDETS, P_RET) THEN
DBG('E',
'Failed while returning from function fn_default_FT_values');
P_RET := -1;
RETURN FALSE;
END IF;
END IF;

DBG('p_ty_msgdets .ORDERING_CUSTOMER1 after fn_default_FT_values' ||


P_TY_MSGDETS.ORDERING_CUSTOMER1);
------------------------
--l_app_date := global.application_date;
--g_app_time := Cspks_Upload.fn_date_time(l_app_date);
------------------------
IF P_TY_RETAIL_TELLER.TXN_BRANCH IS NULL THEN
P_TY_RETAIL_TELLER.TXN_BRANCH := P_TY_RETAIL_TELLER.BRANCH_CODE;
END IF;
------------------------
---9NT1428 CREDIT CARD PAYMENTS CHANGES BY ASLAM Starts
-- IF P_TY_RETAIL_TELLER.PRODUCT_CODE IN ('CRCA', 'CRAC', 'CRCM','CRCS') THEN
--madhu added CRCS -- Commented for the issue 2219
IF P_TY_RETAIL_TELLER.PRODUCT_CODE IN
('CRCA', 'CRAC', 'CRCM', 'CRCS', 'ITCR') THEN
-- Fix for the issue 2219
--FCUBS11.2 ITR1 SFR1189
-- IF gwpks_util.pkg_func IN ('CRCP', 'CRAP', 'CRCM') THEN

-- PR00003698 changes start


IF P_TY_RETAIL_TELLER.PRODUCT_CODE IN ('CRCM') THEN
Begin
select A.CREDITCARD_NO
INTO l_creditcardno
from sttm_credit_card_detail A
where A.auth_stat = 'A'
and A.record_stat = 'O'
and creditcard_no = p_ty_retail_teller.BENEF_ADDR4;
Exception
when others then
P_RET := -1;
RETURN FALSE;
END;
END IF;
-- PR00003698 changes end
DBG('Going to Call default Acc');
IF NOT
CSPKS_CC_PAYMENT.FN_DEFAULT_RTACC(P_TY_RETAIL_TELLER, L_ERR_CODE) THEN
DBG('Failed while calling p_ty_retail_teller');
P_RET := -1;
RETURN FALSE;
END IF;

END IF;
----9NT1428 CREDIT CARD PAYMENTS CHANGES BY ASLAM Endz

/*FCUBSV.UM_10.3 SFR 1937


IF p_ty_retail_teller.ofs_branch IS NULL
THEN
p_ty_retail_teller.ofs_branch := p_ty_retail_teller.branch_code;
END IF;
*/
------------------------
IF P_TY_RETAIL_TELLER.LCY_AMOUNT IS NOT NULL AND
CSPKSS_ACC_SERVICE.G_CLOSE_OUT = 'N' THEN
IF P_TY_RETAIL_TELLER.LCY_AMOUNT IS NOT NULL AND
CSPKSS_ACC_SERVICE.G_AUTO_AC_CLOSURE = FALSE THEN
P_TY_RETAIL_TELLER.LCY_AMOUNT := NULL;
END IF;
END IF;

P_TY_RETAIL_TELLER.MAKER_ID := GLOBAL.USER_ID; --FC101ITR1 SFR#874 Changes

--FC103ITR1 SFR#1379 Changes


BEGIN
DBG('p_ty_retail_teller.txn_acc = ' ||
P_TY_RETAIL_TELLER.TXN_ACC);
DBG('p_ty_retail_teller.TXN_BRANCH = ' ||
P_TY_RETAIL_TELLER.TXN_BRANCH);
DBG('p_ty_retail_teller.TXN_CCY = ' ||
P_TY_RETAIL_TELLER.TXN_CCY);
IF P_TY_RETAIL_TELLER.TXN_CCY IS NULL THEN
SELECT AC_GL_CCY
INTO P_TY_RETAIL_TELLER.TXN_CCY
FROM STTBS_ACCOUNT
WHERE AC_GL_NO = P_TY_RETAIL_TELLER.TXN_ACC
AND BRANCH_CODE = P_TY_RETAIL_TELLER.TXN_BRANCH;
END IF;
DBG('p_ty_retail_teller.TXN_CCY = ' ||
P_TY_RETAIL_TELLER.TXN_CCY);
EXCEPTION
WHEN OTHERS THEN
NULL;
END;

------------------------
-- QQQQQQQQQ : what to do for below condition...

--IF ifpks_xml_parse_java.pkg_actType='INPUT' THEN


-- IF p_ty_txn_ctrl.is_first_stage THEN
/* -- FCC73ITR2 SFR 58 : commented
IF p_ty_retail_teller.ft ='Y' THEN -- Means the request is FT req.
BEGIN
SELECT credit_account, credit_account_branch
INTO p_ty_retail_teller.txn_acc, p_ty_retail_teller.txn_branch
FROM cstms_arc_settle
WHERE route_code= p_ty_retail_teller.route_code
AND once_auth = 'Y' AND record_stat='O' AND auth_stat = 'A';
dbg('p_ty_retail_teller.txn_acc = ' ||
p_ty_retail_teller.txn_acc);
dbg('p_ty_retail_teller.txn_branch = ' ||
p_ty_retail_teller.txn_branch);
EXCEPTION
WHEN OTHERS THEN
dbg('No record found for txn_acc and txn_branch from
cstms_arc_settle for route_code : ' || p_ty_retail_teller.route_code);
NULL;
END;
END IF;
*/
--FCUBS10.0LOT3 starts sajeer (un commented then above)
IF P_FT = 'Y' /*p_ty_retail_teller.ft ='Y' --FCUBS10.0LOT3 */
THEN
-- Means the request is FT req.
--11-JUN-2008 FCUBSV.UM_10.1.0.0.0.0.0 ILM Changes start
IF ((P_TY_RETAIL_TELLER.TXN_BRANCH IS NULL AND
P_TY_RETAIL_TELLER.TXN_ACC IS NULL) OR
(GWPKS_UTIL.G_FROM_BEAN AND
NVL(GWPKS_UTIL.PKG_ACTTYPE, 'INPUT') = 'INPUT')) THEN
--branch changes FCUBS10.1
BEGIN
SELECT CREDIT_ACCOUNT, CREDIT_ACCOUNT_BRANCH
INTO P_TY_RETAIL_TELLER.TXN_ACC, P_TY_RETAIL_TELLER.TXN_BRANCH
FROM CSTMS_ARC_SETTLE
WHERE ROUTE_CODE = P_TY_RETAIL_TELLER.ROUTE_CODE
AND ONCE_AUTH = 'Y'
AND RECORD_STAT = 'O'
AND AUTH_STAT = 'A';
DBG('p_ty_retail_teller.txn_acc = ' ||
P_TY_RETAIL_TELLER.TXN_ACC);
DBG('p_ty_retail_teller.txn_branch = ' ||
P_TY_RETAIL_TELLER.TXN_BRANCH);
EXCEPTION
WHEN OTHERS THEN
DBG('No record found for txn_acc and txn_branch from cstms_arc_settle
for route_code : ' ||
P_TY_RETAIL_TELLER.ROUTE_CODE);
NULL;
END;
END IF;
--11-JUN-2008 FCUBSV.UM_10.1.0.0.0.0.0 ILM Changes end
END IF;
--FCUBS10.0LOT3 ends

DBG('ty_msgdets.ty_cstb_arc_settle.cr_value_dt = ' ||
P_TY_MSGDETS.CR_VALUE_DT);
IF P_TY_MSGDETS.CR_VALUE_DT IS NULL THEN
-- for VDATECR
P_TY_MSGDETS.CR_VALUE_DT := GLOBAL.APPLICATION_DATE;
--l_arc_settle(5) := to_char(global.application_date,l_dtf);
END IF;
DBG('p_ty_msgdets.dr_value_dt = ' || P_TY_MSGDETS.DR_VALUE_DT);
IF P_TY_MSGDETS.DR_VALUE_DT IS NULL THEN
-- for VDATEDR
P_TY_MSGDETS.DR_VALUE_DT := GLOBAL.APPLICATION_DATE;
--l_arc_settle(31) := to_char(global.application_date,l_dtf);
END IF;
-- END IF;

------------------------
-- QQQQQQQ : IS it req here
--IF NOT Cspks_Utils.fn_getproduct_details(l_Transfields(4))
------------------------

/* dbg('Batch number Checking-batch_no:' || p_ty_retail_teller.batchno);


IF p_ty_retail_teller.batchno IS NOT NULL
THEN
dbg('Batch number is not null..lpad logic..');
IF length(TRIM(p_ty_retail_teller.batchno)) IN (1, 2, 3)
THEN
p_ty_retail_teller.batchno := lpad(p_ty_retail_teller.batchno, 4, 0);
END IF;
END IF; */ --typeconv

------------------------

DBG('Now for the SYNC of Instr ' ||


P_TY_RETAIL_TELLER.CR_INSTRUMENT_CODE);
IF P_TY_RETAIL_TELLER.CR_INSTRUMENT_CODE IS NULL THEN
DBG('cr_instrument_code Was null');
IF P_TY_MCKDETAILS.INSTRUMENT_NO IS NOT NULL THEN
DBG('And mck_details were there');
P_TY_RETAIL_TELLER.CR_INSTRUMENT_CODE := P_TY_MCKDETAILS.INSTRUMENT_NO;
END IF;
ELSE
DBG('Exists and MCK serial no is ' || P_TY_MCKDETAILS.INSTRUMENT_NO);
IF P_TY_MCKDETAILS.INSTRUMENT_NO IS NOT NULL THEN
IF P_TY_MCKDETAILS.INSTRUMENT_NO <>
P_TY_RETAIL_TELLER.CR_INSTRUMENT_CODE THEN
DBG('E', 'Mismatch in Instrument Nos found');
OVPKSS.PR_APPENDTBL('DE-INSTR1',
P_TY_MCKDETAILS.INSTRUMENT_NO || '~' ||
P_TY_RETAIL_TELLER.CR_INSTRUMENT_CODE);
RETURN FALSE;
ELSE
DBG('No Mismatch found in Instrument Nos ');
END IF;
END IF;
END IF;
------------------------
-- QQQQQQ : what to do ?
-- IF ifpks_xml_parse_java.pkg_actType NOT IN ('AUTH')
------------------------
BEGIN
DBG('Route Code check');
--typeconv l_ft := p_ty_retail_teller.ft;
L_ROUTECODE := P_TY_RETAIL_TELLER.ROUTE_CODE;
-- FCC73ITR2 SFR 58 -- Moved to function fn_default_FT_values
/*
IF l_routecode IS NULL AND l_ft = 'Y'
THEN
IF l_routecode IS NULL
THEN
-- dbg('To resolve route '||l_transfields(42)||' '||l_transfields(10)||'
'||l_transfields(3)
-- ||' '||l_transfields(43));

pr_resolve_route( p_ty_retail_teller.awi1,
p_ty_retail_teller.txn_ccy,
p_ty_retail_teller.branch_code,
p_ty_retail_teller.country,
l_routecode);
END IF;
IF l_routecode IS NULL
THEN
dbg('FT Problem');
l_ftproblem := 'Y';
ovpkss.pr_appendtbl( 'FTARC001', NULL);
dbg('Could not resolve Transfer Route.');
p_ret := -1;
RETURN FALSE;
ELSE
dbg('Resolved route as '||l_routecode);
l_ftproblem := 'N';
END IF;
END IF;
*/
-- FCC73ITR2 SFR 58
EXCEPTION
WHEN OTHERS THEN
DBG('Not a FT Problem');
L_FTPROBLEM := 'N';
END;
------------------------
L_OFS_ACC := P_TY_RETAIL_TELLER.OFS_ACC;
--l_ofs_brn := p_ty_retail_teller.ofs_acc; -- FCC73ITR1 SFR 258 : code
commented ofs_branch added
L_OFS_BRN := P_TY_RETAIL_TELLER.OFS_BRANCH;
L_TXN_ACC := P_TY_RETAIL_TELLER.TXN_ACC;
L_TXN_BRN := NVL(P_TY_RETAIL_TELLER.TXN_BRANCH,
P_TY_RETAIL_TELLER.BRANCH_CODE);

DBG('Transaction Account is:' || L_TXN_ACC);


DBG('Transaction Branch is:' || L_TXN_BRN);

-- kernel staff restr retro starts


IF GWPKSS_UTIL.G_CHECKERID IS NULL THEN
DBG('checker is null , assigning maker id to l_user: ' ||
GLOBAL.USER_ID);
L_USR := GLOBAL.USER_ID;
ELSE
DBG('checker is not null , assigning check id to l_user: ' ||
GWPKSS_UTIL.G_CHECKERID);
L_USR := GWPKSS_UTIL.G_CHECKERID;
END IF;

BEGIN
SELECT CUSTOMER_NO
INTO L_CUST_NO
FROM SMTB_USER
WHERE USER_ID = L_USR;
EXCEPTION

WHEN NO_DATA_FOUND THEN


DBG('no record for this user');
WHEN OTHERS THEN
DBG('In when others of selecting customer_no ' || SQLERRM);
END;

--------------staff account restriction starts---------------------


/*IF l_ofs_acc IS NOT NULL AND l_ofs_brn IS NOT NULL THEN
IF NOT cspks_staff_restr.fn_check_cust(NULL,
l_ofs_acc,
l_ofs_brn,
'N',
l_err_param,
l_err_code) THEN -- 'N' changed to
'Y' DEFLT00015014 changes
dbg('FAILED IN fn_check_cust' || SQLERRM);
ovpkss.pr_appendtbl(l_err_code, l_err_param);
RETURN FALSE;
END IF;
END IF;
IF l_txn_acc IS NOT NULL AND l_txn_brn IS NOT NULL THEN
IF NOT cspks_staff_restr.fn_check_cust(NULL,
l_txn_acc,
l_txn_brn,
'N',
l_err_param,
l_err_code) THEN -- 'N' changed to 'Y'
DEFLT00015014 changes
dbg('FAILED IN fn_check_cust' || SQLERRM);
ovpkss.pr_appendtbl(l_err_code, l_err_param);
RETURN FALSE;
END IF;
END IF; */

IF L_OFS_ACC IS NOT NULL AND L_OFS_BRN IS NOT NULL THEN


IF NOT CSPKS_STAFF_RESTR.FN_CHECK_CUST(L_CUST_NO,
L_USR,
NULL,
L_OFS_ACC,
L_OFS_BRN,
'N',
L_ERR_PARAM,
L_ERR_CODE) THEN
DBG('FAILED IN fn_check_cust' || SQLERRM);
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
P_RET := -1; --PRASHANT
RETURN FALSE;
END IF;
END IF;
IF L_TXN_ACC IS NOT NULL AND L_TXN_BRN IS NOT NULL THEN
IF NOT CSPKS_STAFF_RESTR.FN_CHECK_CUST(L_CUST_NO,
L_USR,
NULL,
L_TXN_ACC,
L_TXN_BRN,
'N',
L_ERR_PARAM,
L_ERR_CODE) THEN
DBG('FAILED IN fn_check_cust' || SQLERRM);
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
P_RET := -1; --PRASHANT
RETURN FALSE;
END IF;
END IF;

-- kernel staff restr retro ends


-------------------Staff account restriction ends------------

DBG('p_ft :' || P_FT);


DBG('l_ftproblem :' || L_FTPROBLEM);

IF P_FT = 'Y' AND L_FTPROBLEM = 'N' THEN


DBG('IDC / ODC Txn with route as ' || L_ROUTECODE);
----------------
IF NOT FN_ARC_SETTLE_PICKUP(L_ROUTECODE,
L_TXN_ACC, --sajeer l_ofs_acc, --l_txn_acc, --
FCC73ITR2 SFR 58
L_TXN_BRN, --sajeer l_ofs_brn, --l_txn_brn, --
FCC73ITR2 SFR 58
L_SETTLE_ROW,
P_RET) THEN
P_RET := -1;
DBG('E', 'Failed while calling fn_arc_settle_pickup');
RETURN FALSE;
END IF;
----------------
-- IF p_tbl_node_rec.EXISTS('MSGDETS_FJB') -- FCC73ITR1 SFR 492
-- THEN
L_SETTLE_ROW.XREF := P_TY_RETAIL_TELLER.XREF;
L_SETTLE_ROW.ROUTE_CODE := L_ROUTECODE;
DBG('p_ty_msgdets .ORDERING_CUSTOMER1 5' ||
P_TY_MSGDETS.ORDERING_CUSTOMER1);
IF NOT FN_ARC_SETTLE_SUPERSCRIBE(P_TY_RETAIL_TELLER,
L_SETTLE_ROW,
P_TY_MSGDETS,
P_RET) THEN
DBG('Failed while calling fn_arc_settle_superscribe..');
P_RET := -1;
RETURN FALSE;
END IF;
--QQQQQ : pr_arc_settle_superscribe(l_arc_settle, l_settle_row);
--END IF;
----------------
ISPKSS_PARTY.PR_VALIDATE_IS_INFO(L_SETTLE_ROW, P_RET, L_ERR_CODE);
----------------
IF FN_IS_AN_ERROR_RAISED(P_RET) THEN
RETURN FALSE;
END IF;
-- QQQQQQQ : pr_insert_settle_details(l_settle_row);
DBG('p_ty_msgdets .ORDERING_CUSTOMER1 6' ||
P_TY_MSGDETS.ORDERING_CUSTOMER1);
DBG('about to insert record in cstbs_arc_settle');
INSERT INTO CSTBS_ARC_SETTLE VALUES P_TY_MSGDETS;
END IF;
------------------------
-- SSanjeev added : 10-NOV-06 End :
-- ''''''''''''''''''
--FCUBS 10.1 Switch Interface Tuning Changes starts
--Validation is tehere in depks_rtl+_tellr
/*IF p_ty_retail_teller.txn_ccy IS NULL AND
p_ty_retail_teller.txn_acc IS NOT NULL
THEN
dbg('defaulting txn_ccy from sttb_account');
IF NOT fn_is_acc_a_gl(p_ty_retail_teller.txn_branch,
p_ty_retail_teller.txn_acc,
l_ccy,
p_ret,
l_err_code,
l_err_param)
THEN
p_ty_retail_teller.txn_ccy := l_ccy;
END IF;
END IF;

-- ''''''''''''''''''

IF p_ty_retail_teller.ofs_ccy IS NULL AND


p_ty_retail_teller.ofs_branch IS NOT NULL
THEN
Dbg('defaulting offset ccy from sttb_account');
IF NOT fn_is_acc_a_gl(p_ty_retail_teller.ofs_branch,
p_ty_retail_teller.ofs_acc,
l_ccy,
p_ret,
l_err_code,
l_err_param)
THEN
p_ty_retail_teller.ofs_ccy := l_ccy;
ELSE
Dbg('offset acc is a GL so defaulting ofs ccy to txn ccy');
p_ty_retail_teller.ofs_ccy := p_ty_retail_teller.txn_ccy;
END IF;
END IF;*/
--FCUBS 10.1 Switch Interface Tuning Changes ends
-- ''''''''''''''''''
--17876 - TraderPro VAT Changes Starts
IF P_TY_RETAIL_TELLER.SCODE <> 'TRDPRO' OR
(P_TY_RETAIL_TELLER.SCODE = 'TRDPRO' AND
P_TY_RETAIL_TELLER.REL_CUSTOMER IS NULL) THEN
--17876 - TraderPro VAT Changes Ends
-- 9NT1428- FCUBS 11.2 Customer Group CHANGES STARTS
DBG('Going to call fn_default_relcustomer');
IF NOT FN_DEFAULT_RELCUSTOMER(P_TY_RETAIL_TELLER, L_ERR_CODE, P_RET) THEN
DBG('Failed while calling fn_default_relcustomer....');
P_RET := -1;
RETURN FALSE;
END IF;
END IF; --17876 - TraderPro VAT Changes
-- 9NT1428- FCUBS 11.2 Customer Group CHANGES ENDS

DBG('Going to call fn_default_chgdets');


IF NOT FN_DEFAULT_CHGDETS(P_TBL_CHGDETS, P_TY_RETAIL_TELLER, P_RET) THEN
DBG('Failed while calling fn_default_chgdets....');
P_RET := -1;
RETURN FALSE;
END IF;
-------
IF NOT FN_CHARGE_SUPERSCRIBE(P_TBL_CHGDETS, P_TY_RETAIL_TELLER, P_RET) THEN
DBG('Failed while calling fn_charge_superscribe....');
P_RET := -1;
RETURN FALSE;
END IF;
-- ''''''''''''''''''
-- ''''''''''''''''''
DBG('Successfully completed function fn_default_values');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Exception caught in fn_default_values with sqlerrm : ' ||
SQLERRM);
P_RET := -1;
OVPKSS.PR_APPENDTBL('GW-RTL-002', NULL);
RETURN FALSE;
END FN_DEFAULT_VALUES;

-----------------------------------------------------------------------------------
----
/*,p_ty_misdetails IN OUT typ_misdetails_fjb
,p_tbl_udfdetails IN OUT tbl_udfdetails_fjb*/
FUNCTION FN_VALIDATE(P_TY_RETAILTLR_UPD IN OUT DETB_UPLOAD_RTL_TELLER%ROWTYPE --
typeconv typ_retail_teller_rec
,
P_TBL_CHGDETS IN OUT TYP_TBLCHGDETS,
P_UPL_MIS_DET IN OUT MITBS_UPLOAD_CLASS_MAPPING
%ROWTYPE,
P_UPL_UDF_DET IN OUT UVPKSS_UDF_UPLOAD.TY_UPL_CONT_UDF,
P_TY_MCKDETAILS IN OUT ISTB_UPLOAD_CONTRACTIS%ROWTYPE --
typeconv typ_mckdetails_fjb
,
P_TY_MSGDETS IN OUT CSTB_UPLOAD_ARC_SETTLE%ROWTYPE --
typeconv typ_msgdets_fjb
,
P_TBL_NODE_REC IN TYP_NODE_TBL,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS
--FCUBS_12.0.2_IDTKEKE_17420685 virtual starts
L_FN_CALL_ID NUMBER;
L_TBL_CLUSTER_DATA GLOBAL.TY_TB_CLUSTER_DATA;
L_TBL_CLUSTER_DATA_EMPTY GLOBAL.TY_TB_CLUSTER_DATA;
--FCUBS_12.0.2_IDTKEKE_17420685 virtual ends
BEGIN
DBG('Inside fn_validate....');
--FCUBS_12.0.2_IDTKEKE_17420685 virtual starts
/* IF cspks_req_global.g_release_type IN
(cspks_req_global.p_custom,cspks_req_global.p_cluster) THEN
l_fn_call_id := 2;
l_tbl_cluster_data := l_tbl_cluster_data_empty;

dbg('Calling depks_ret_telr_upld_cluster.fn_validate.. ');


IF NOT depks_ret_telr_upld_cluster.fn_validate( p_ty_retailtlr_upd
,p_tbl_chgdets
,p_upl_mis_det
,p_upl_udf_det
,p_ty_mckdetails
,p_ty_msgdets
,p_tbl_node_rec
,p_ret
,l_fn_call_id
,l_tbl_cluster_data)
THEN
dbg('depks_ret_telr_upld_cluster.fn_validate returned false ');
RETURN FALSE;
END IF;
END IF;*/
--FCUBS_12.0.2_IDTKEKE_17420685 virtual ends
-- FCC73ITR2 SFR 58
/*IF p_ty_retail_teller.ft = 'Y'
THEN
IF NOT fn_default_FT_values(p_ty_retail_teller, p_ret)
THEN
dbg('E',
'Failed while returning from function fn_default_FT_values');
p_ret := -1;
RETURN FALSE;
END IF;
END IF; */ --moved
-- FCC73ITR2 SFR 58
--~~~~~~~~~~~~~~~~~~~~~~~
--typeconv IF NOT fn_mandatory_check(p_ty_retail_teller, p_ret)
IF NOT FN_MANDATORY_CHECK(P_TY_RETAILTLR_UPD, P_RET) ----typeconv
THEN
DBG('E', 'Failed while returning from function fn_mandatory_check');
P_RET := -1;
RETURN FALSE;
END IF;
--~~~~~~~~~~~~~~~~~~~~~~~
DBG('Before calling fn_validate_incoming_data');

/*IF NOT fn_validate_incoming_data( p_ty_retail_teller,


p_ret
)
THEN
dbg('E','Failed while returning from function fn_validate_incoming_data');
p_ret := -1;
RETURN FALSE;
END IF;*/
IF NOT
FN_VALIDATE_INCOMING_DATA(P_TY_RETAILTLR_UPD, P_TBL_CHGDETS, P_RET) --
typeconv
THEN
DBG('E',
'Failed while returning from function fn_validate_incoming_data');
P_RET := -1;
RETURN FALSE;
END IF;
--~~~~~~~~~~~~~~~~~~~~~~~
IF NOT FN_VALIDATE_SUBSYSTEMS(P_TY_RETAILTLR_UPD, --typeconv
P_TBL_CHGDETS,
P_UPL_MIS_DET,
P_UPL_UDF_DET,
P_TY_MCKDETAILS,
P_TY_MSGDETS,
P_TBL_NODE_REC,
P_RET) THEN
DBG('E', 'Error while calling fn_upload_subsystems');
END IF;
--~~~~~~~~~~~~~~~~~~~~~~~

DBG('Before calling fn_default_values');

/*IF NOT fn_default_values(p_ty_retail_teller,


p_tbl_chgdets,
p_upl_mis_det,
p_upl_udf_det,
p_ty_mckdetails,
p_ty_msgdets,
p_tbl_node_rec,
p_ret)
THEN
dbg('E',
'Failed while returning from function fn_validate_incoming_data');
p_ret := -1;
RETURN FALSE;
END IF; */ --typeconv moved the call
--~~~~~~~~~~~~~~~~~~~~~~~
--p_ret := 0;
RETURN TRUE;
--~~~~~~~~~~~~~~~~~~~~~~~
EXCEPTION
WHEN OTHERS THEN
DBG('E', 'Failed in the fn_validate with sqlerrm : ' || SQLERRM);
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE;

-- FCC73ITR2 SFR 58
FUNCTION FN_INSERT_FIELD_LOG(P_KEY_ID IN VARCHAR2,
P_MOD_NO IN NUMBER,
P_DETAIL_KEY IN VARCHAR2,
P_DETB_RTL_TLR IN DETB_RTL_TELLER%ROWTYPE,
P_RET IN OUT NUMBER) RETURN BOOLEAN IS
L_FUNCTION_ID VARCHAR2(20) := 'DEGRTTLR';
L_BLK_NAME VARCHAR2(20) := 'BLK_DETB_RTL_TELLER';
L_TABLE_NAME VARCHAR2(20) := 'DETBS_RTL_TELLER';
L_COUNT NUMBER := 0; -- SFR 58
BEGIN
DBG('Inside fn_insert_field_log....');

-- FC 10 Tuning PF-023
IF NOT CSPKS_FEATURE.FN_INSTALLED('DERECLOG') THEN
RETURN TRUE;
END IF;
-- FC 10 Tuning PF-023

IF P_DETB_RTL_TLR.PRODUCT_CODE IS NOT NULL THEN


L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'PRODUCT_CODE',
NULL,
P_DETB_RTL_TLR.PRODUCT_CODE,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.TRN_REF_NO IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'TRN_REF_NO',
NULL,
P_DETB_RTL_TLR.TRN_REF_NO,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.BRANCH_CODE IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'BRANCH_CODE',
NULL,
P_DETB_RTL_TLR.BRANCH_CODE,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.TXN_CCY IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'TXN_CCY',
NULL,
P_DETB_RTL_TLR.TXN_CCY,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.REL_CUSTOMER IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'REL_CUSTOMER',
NULL,
P_DETB_RTL_TLR.REL_CUSTOMER,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.TXN_ACC IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'TXN_ACC',
NULL,
P_DETB_RTL_TLR.TXN_ACC,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.XREF IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'XREF',
NULL,
P_DETB_RTL_TLR.XREF,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.TXN_AMOUNT IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'TXN_AMOUNT',
NULL,
P_DETB_RTL_TLR.TXN_AMOUNT,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.TXN_BRANCH IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'TXN_BRANCH',
NULL,
P_DETB_RTL_TLR.TXN_BRANCH,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.TXN_TRN_CODE IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'TXN_TRN_CODE',
NULL,
P_DETB_RTL_TLR.TXN_TRN_CODE,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.OFS_ACC IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'OFS_ACC',
NULL,
P_DETB_RTL_TLR.OFS_ACC,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.OFS_CCY IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'OFS_CCY',
NULL,
P_DETB_RTL_TLR.OFS_CCY,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.OFS_AMOUNT IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'OFS_AMOUNT',
NULL,
P_DETB_RTL_TLR.OFS_AMOUNT,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.OFS_BRANCH IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'OFS_BRANCH',
NULL,
P_DETB_RTL_TLR.OFS_BRANCH,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.OFS_TRN_CODE IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'OFS_TRN_CODE',
NULL,
P_DETB_RTL_TLR.OFS_TRN_CODE,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.EXCH_RATE IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'EXCH_RATE',
NULL,
P_DETB_RTL_TLR.EXCH_RATE,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.LCY_EXCH_RATE IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'LCY_EXCH_RATE',
NULL,
P_DETB_RTL_TLR.LCY_EXCH_RATE,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.LCY_AMOUNT IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'LCY_AMOUNT',
NULL,
P_DETB_RTL_TLR.LCY_AMOUNT,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.TRN_DT IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'TRN_DT',
NULL,
TO_CHAR(P_DETB_RTL_TLR.TRN_DT, 'DD-MON-YYYY') || ' ' ||
TO_CHAR(P_DETB_RTL_TLR.TRN_DT, 'HH24:MI:SS'),
L_TABLE_NAME);
END IF; --
IF P_DETB_RTL_TLR.VALUE_DT IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'VALUE_DATE',
NULL,
TO_CHAR(P_DETB_RTL_TLR.VALUE_DT, 'DD-MON-YYYY') || ' ' ||
TO_CHAR(P_DETB_RTL_TLR.VALUE_DT, 'HH24:MI:SS'),
L_TABLE_NAME);
END IF; --
IF P_DETB_RTL_TLR.DR_INSTRUMENT_CODE IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'DR_INSTRUMENT_CODE',
NULL,
P_DETB_RTL_TLR.DR_INSTRUMENT_CODE,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CR_INSTRUMENT_CODE IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CR_INSTRUMENT_CODE',
NULL,
P_DETB_RTL_TLR.CR_INSTRUMENT_CODE,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_GL IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_GL',
NULL,
P_DETB_RTL_TLR.CHG_GL,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_CCY IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_CCY',
NULL,
P_DETB_RTL_TLR.CHG_CCY,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_AMT IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_AMT',
NULL,
P_DETB_RTL_TLR.CHG_AMT,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_IN_ACY IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_IN_ACY',
NULL,
P_DETB_RTL_TLR.CHG_IN_ACY,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.NETTING_IND IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'NETTING_IND',
NULL,
P_DETB_RTL_TLR.NETTING_IND,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.TXN_CODE IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'TXN_CODE',
NULL,
P_DETB_RTL_TLR.TXN_CODE,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.MIS_HEAD_1 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'MIS_HEAD_1',
NULL,
P_DETB_RTL_TLR.MIS_HEAD_1,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_GL_1 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_GL_1',
NULL,
P_DETB_RTL_TLR.CHG_GL_1,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_CCY_1 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_CCY_1',
NULL,
P_DETB_RTL_TLR.CHG_CCY_1,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_AMT_1 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_AMT_1',
NULL,
P_DETB_RTL_TLR.CHG_AMT_1,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_IN_ACY_1 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_IN_ACY_1',
NULL,
P_DETB_RTL_TLR.CHG_IN_ACY_1,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.NETTING_IND_1 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'NETTING_IND_1',
NULL,
P_DETB_RTL_TLR.NETTING_IND_1,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.TXN_CODE_1 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'TXN_CODE_1',
NULL,
P_DETB_RTL_TLR.TXN_CODE_1,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.MIS_HEAD_2 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'MIS_HEAD_2',
NULL,
P_DETB_RTL_TLR.MIS_HEAD_2,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_GL_2 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_GL_2',
NULL,
P_DETB_RTL_TLR.CHG_GL_2,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_CCY_2 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_CCY_2',
NULL,
P_DETB_RTL_TLR.CHG_CCY_2,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_AMT_2 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_AMT_2',
NULL,
P_DETB_RTL_TLR.CHG_AMT_2,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_IN_ACY_2 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_IN_ACY_2',
NULL,
P_DETB_RTL_TLR.CHG_IN_ACY_2,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.NETTING_IND_2 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'NETTING_IND_2',
NULL,
P_DETB_RTL_TLR.NETTING_IND_2,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.TXN_CODE_2 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'TXN_CODE_2',
NULL,
P_DETB_RTL_TLR.TXN_CODE_2,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.MIS_HEAD_3 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'MIS_HEAD_3',
NULL,
P_DETB_RTL_TLR.MIS_HEAD_3,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_GL_3 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_GL_3',
NULL,
P_DETB_RTL_TLR.CHG_GL_3,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_CCY_3 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_CCY_3',
NULL,
P_DETB_RTL_TLR.CHG_CCY_3,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_AMT_3 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_AMT_3',
NULL,
P_DETB_RTL_TLR.CHG_AMT_3,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_IN_ACY_3 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_IN_ACY_3',
NULL,
P_DETB_RTL_TLR.CHG_IN_ACY_3,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.NETTING_IND_3 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'NETTING_IND_3',
NULL,
P_DETB_RTL_TLR.NETTING_IND_3,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.TXN_CODE_3 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'TXN_CODE_3',
NULL,
P_DETB_RTL_TLR.TXN_CODE_3,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.MIS_HEAD_4 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'MIS_HEAD_4',
NULL,
P_DETB_RTL_TLR.MIS_HEAD_4,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_GL_4 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_GL_4',
NULL,
P_DETB_RTL_TLR.CHG_GL_4,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_CCY_4 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_CCY_4',
NULL,
P_DETB_RTL_TLR.CHG_CCY_4,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_AMT_4 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_AMT_4',
NULL,
P_DETB_RTL_TLR.CHG_AMT_4,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHG_IN_ACY_4 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHG_IN_ACY_4',
NULL,
P_DETB_RTL_TLR.CHG_IN_ACY_4,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.NETTING_IND_4 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'NETTING_IND_4',
NULL,
P_DETB_RTL_TLR.NETTING_IND_4,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.TXN_CODE_4 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'TXN_CODE_4',
NULL,
P_DETB_RTL_TLR.TXN_CODE_4,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.MIS_HEAD_5 IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'MIS_HEAD_5',
NULL,
P_DETB_RTL_TLR.MIS_HEAD_5,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.REM_ACC IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'REM_ACC',
NULL,
P_DETB_RTL_TLR.REM_ACC,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.REM_BANK IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'REM_BANK',
NULL,
P_DETB_RTL_TLR.REM_BANK,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.REM_BRANCH IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'REM_BRANCH',
NULL,
P_DETB_RTL_TLR.REM_BRANCH,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.ROUTING_NO IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'ROUTING_NO',
NULL,
P_DETB_RTL_TLR.ROUTING_NO,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.TRACK_RECEIVABLE IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'TRACK_RECEIVABLE',
NULL,
P_DETB_RTL_TLR.TRACK_RECEIVABLE,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.END_POINT IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'END_POINT',
NULL,
P_DETB_RTL_TLR.END_POINT,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.SERIAL_NO IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'SERIAL_NO',
NULL,
P_DETB_RTL_TLR.SERIAL_NO,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.CHARGE_ACCOUNT IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'CHARGE_ACCOUNT',
NULL,
P_DETB_RTL_TLR.CHARGE_ACCOUNT,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.REPAIR_REASON IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'REPAIR_REASON',
NULL,
P_DETB_RTL_TLR.REPAIR_REASON,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.MIS_HEAD IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'MIS_HEAD',
NULL,
P_DETB_RTL_TLR.MIS_HEAD,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.NARRATIVE IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'NARRATIVE',
NULL,
P_DETB_RTL_TLR.NARRATIVE,
L_TABLE_NAME);
END IF;
IF P_DETB_RTL_TLR.ROUTE_CODE IS NOT NULL THEN
L_COUNT := L_COUNT + 1;
INSERT INTO STTB_FIELD_LOG
(KEY_ID,
MOD_NO,
DETAIL_KEY,
ITEM_NO,
FUNCTION_ID,
BLOCK_NAME,
RECORD_STAT,
FIELD_NAME,
OLD_VALUE,
NEW_VALUE,
TABLE_NAME)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_DETAIL_KEY,
L_COUNT,
L_FUNCTION_ID,
L_BLK_NAME,
'N',
'ROUTE_CODE',
NULL,
P_DETB_RTL_TLR.ROUTE_CODE,
L_TABLE_NAME);
END IF;

DBG('Successfully finished fn_insert_field_log....');


RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('E',
'Exception caught while uploading fn_insert_field_log with sqlerrm : ' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-015', NULL); -- Error while updating the Record
Log.
P_RET := -1;
RETURN FALSE;
END FN_INSERT_FIELD_LOG;

FUNCTION FN_INSERT_RECORD_LOG(P_KEY_ID IN VARCHAR2,


P_MOD_NO IN VARCHAR2,
P_BRANCH_CODE IN VARCHAR2,
P_FUNCTION_ID IN VARCHAR2,
P_TABLE_NAME IN VARCHAR2,
P_MAKER_ID IN VARCHAR2,
P_MAKER_DT_STAMP IN VARCHAR2,
P_CHECKER_ID IN VARCHAR2,
P_CHECKER_DT_STAMP IN VARCHAR2,
P_RECORD_STAT IN VARCHAR2,
P_AUTH_STAT IN VARCHAR2,
P_PRINT_STAT IN VARCHAR2,
P_DETB_RTL_TLR IN DETBS_RTL_TELLER%ROWTYPE,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS
BEGIN
DBG('Inside fn_insert_record_log....');

INSERT INTO STTB_RECORD_LOG


(KEY_ID,
MOD_NO,
BRANCH_CODE,
FUNCTION_ID,
TABLE_NAME,
MAKER_ID,
MAKER_DT_STAMP,
CHECKER_ID,
CHECKER_DT_STAMP,
RECORD_STAT,
AUTH_STAT,
PRINT_STAT)
VALUES
(P_KEY_ID,
P_MOD_NO,
P_BRANCH_CODE,
P_FUNCTION_ID,
P_TABLE_NAME,
P_MAKER_ID,
P_MAKER_DT_STAMP,
P_CHECKER_ID,
P_CHECKER_DT_STAMP,
P_RECORD_STAT,
P_AUTH_STAT,
P_PRINT_STAT);

IF NOT FN_INSERT_FIELD_LOG(P_KEY_ID,
P_MOD_NO,
P_KEY_ID,
P_DETB_RTL_TLR,
P_RET) THEN
DBG('E',
'Exception caught while uploading fn_insert_field_log with sqlerrm : ' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-015', NULL); -- Error while updating the Record
Log.
P_RET := -1;
RETURN FALSE;
END IF;
DBG('Successfully finished fn_insert_record_log....');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('E',
'Exception caught while uploading fn_update_record_log with sqlerrm : '
||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-015', NULL); -- Error while updating the Record
Log.
P_RET := -1;
RETURN FALSE;
END FN_INSERT_RECORD_LOG;

FUNCTION FN_UPDATE_RECORD_LOG(P_KEY_ID IN VARCHAR2,


P_MOD_NO IN VARCHAR2,
P_BRANCH_CODE IN VARCHAR2,
P_FUNCTION_ID IN VARCHAR2,
P_TABLE_NAME IN VARCHAR2,
P_MAKER_ID IN VARCHAR2,
P_MAKER_DT_STAMP IN VARCHAR2,
P_CHECKER_ID IN VARCHAR2,
P_CHECKER_DT_STAMP IN VARCHAR2,
P_RECORD_STAT IN VARCHAR2,
P_AUTH_STAT IN VARCHAR2,
P_PRINT_STAT IN VARCHAR2,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS
BEGIN
DBG('Inside fn_update_record_log....');
UPDATE STTB_RECORD_LOG
--SET checker_id = p_checker_id
SET CHECKER_ID = NVL(GWPKS_UTIL.G_CHECKERID, P_CHECKER_ID) --FCUBS11.1
Changes SFR#3808
,
CHECKER_DT_STAMP = P_CHECKER_DT_STAMP,
AUTH_STAT = P_AUTH_STAT
WHERE KEY_ID = P_KEY_ID
AND MOD_NO = P_MOD_NO;
DBG('Successfully finished fn_update_record_log....');
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('E',
'Exception caught while uploading fn_update_record_log with sqlerrm : '
||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-015', NULL); -- Error while updating the Record
Log.
P_RET := -1;
RETURN FALSE;
END FN_UPDATE_RECORD_LOG;
-- FCC73ITR2 SFR 58

FUNCTION FN_UNINITRTTXN(P_UPLD_RT_TYP IN DETB_UPLOAD_RTL_TELLER%ROWTYPE,


P_TBL_CHGDETS IN OUT TYP_TBLCHGDETS,
P_FCLTL IN OUT VARCHAR2,
P_TRN_REF OUT VARCHAR2,
P_ERR_CODE IN OUT VARCHAR2) RETURN BOOLEAN IS

L_RT_UPLD_TYP DEPKS_RETAILTELLERUPLOAD.TYP_RETAILTELLERUPLD_REC;
L_RETAIL_TLR_CUST DETB_RTL_TELLER_CUSTOM%ROWTYPE; --
FCUBS_11.2.0.0.0$BOMLAE_Customer_Choreography_Financial_Transactions
L_TY_RETAIL_TELLER DETB_RTL_TELLER%ROWTYPE;
L_TY_MSG_DETS CSTB_ARC_SETTLE%ROWTYPE;
L_TY_MCKDETAILS ISVW_MCK_DETAILS%ROWTYPE;
L_SERIAL_USELESS VARCHAR2(10); -- NO use. only used as parameter for a call
to trpkss.fn_get_product_refno
L_ERR_PARAM VARCHAR2(2000);
BEGIN
DBG('in the fxn to create an uninitialized rt txn');

L_RT_UPLD_TYP.TY_UPLD_RTL_TELLER := P_UPLD_RT_TYP;

IF NOT FN_COPY_UPLOAD_TO_BASE(L_RT_UPLD_TYP.TY_UPLD_RTL_TELLER,
--L_RETAIL_TLR_CUST, --
FCUBS_11.2.0.0.0$BOMLAE_Customer_Choreography_Financial_Transactions
L_RT_UPLD_TYP.TY_MSGDETS,
L_RT_UPLD_TYP.TY_MCKDETAILS,
L_TY_RETAIL_TELLER,
L_TY_MSG_DETS,
L_TY_MCKDETAILS,
P_ERR_CODE,
L_ERR_PARAM)

THEN
DBG('Failed in fn_copy_upload_to_base' || SQLERRM);

RETURN FALSE;
END IF;

--copying charges
IF P_TBL_CHGDETS.COUNT > 0 THEN
--DEFLT00011786 Added
IF NVL(P_TBL_CHGDETS(1).CHG_AMT, 0) > 0 --DEFLT00011786 ADDED
THEN
L_TY_RETAIL_TELLER.CHG_AMT := P_TBL_CHGDETS(1).CHG_AMT;
L_TY_RETAIL_TELLER.CHG_CCY := P_TBL_CHGDETS(1).COD_CHG_CCY;
L_TY_RETAIL_TELLER.CHG_DESC := P_TBL_CHGDETS(1).COD_CHG_DESC;
END IF; --DEFLT00011786 ADDED
IF NVL(P_TBL_CHGDETS(2).CHG_AMT, 0) > 0 --DEFLT00011786 ADDED
THEN
L_TY_RETAIL_TELLER.CHG_AMT_1 := P_TBL_CHGDETS(2).CHG_AMT;
L_TY_RETAIL_TELLER.CHG_CCY_1 := P_TBL_CHGDETS(2).COD_CHG_CCY;
L_TY_RETAIL_TELLER.CHG_DESC1 := P_TBL_CHGDETS(2).COD_CHG_DESC;
END IF; --DEFLT00011786 ADDED
END IF; --DEFLT00011786 Added
IF NOT TRPKSS.FN_GET_PRODUCT_REFNO(L_TY_RETAIL_TELLER.BRANCH_CODE,
L_TY_RETAIL_TELLER.PRODUCT_CODE,
GLOBAL.APPLICATION_DATE,
L_SERIAL_USELESS,
L_TY_RETAIL_TELLER.TRN_REF_NO,
P_ERR_CODE) THEN
DBG('Failed in generating prod ref no with p_err_code : ' ||
P_ERR_CODE);
RETURN FALSE;
END IF;

DBG('Generated Ref No: ' || L_TY_RETAIL_TELLER.TRN_REF_NO);


P_TRN_REF := L_TY_RETAIL_TELLER.TRN_REF_NO;

IF L_TY_RETAIL_TELLER.XREF IS NULL THEN


L_TY_RETAIL_TELLER.XREF := L_TY_RETAIL_TELLER.TRN_REF_NO;
END IF;
DBG('CDP: ' || P_FCLTL);
IF P_FCLTL = 'CDP' THEN
L_TY_RETAIL_TELLER.TXN_STATUS := 'T';
ELSE
L_TY_RETAIL_TELLER.TXN_STATUS := 'U';
END IF;
L_TY_RETAIL_TELLER.RECORD_STAT := 'O';

BEGIN
INSERT INTO DETBS_RTL_TELLER VALUES L_TY_RETAIL_TELLER;
DBG('l_ty_retail_teller.record_stat: ' ||
L_TY_RETAIL_TELLER.RECORD_STAT);
EXCEPTION
WHEN OTHERS THEN
DBG('failed to insert into detb_rtl_teller');
RETURN FALSE;
END;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DEBUG.PR_DEBUG('AC',
SUBSTR(DBMS_UTILITY.FORMAT_CALL_STACK, 87) || '^^' ||
DBMS_UTILITY.FORMAT_ERROR_STACK || '^^' ||
DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
DBG('Failed, and in the WOT of uninitrttxn');
RETURN FALSE;
END FN_UNINITRTTXN;

---------------------------------------------------------------
--NEFT/RTGS CHANGES 1405
FUNCTION FN_UPLOAD_PC(P_TY_RETAIL_TELLER IN DETBS_RTL_TELLER%ROWTYPE,
P_TY_PCDETAILS IN OUT DETB_PCTRN%ROWTYPE,
P_RET IN OUT VARCHAR2) RETURN BOOLEAN IS

P_TY_RTUPLD VARCHAR2(20);
BEGIN
DBG('Inside FN_UPLOAD_PC details....');
P_TY_PCDETAILS.TRN_REF_NO := P_TY_RETAIL_TELLER.TRN_REF_NO;
DBG('fetched value for trans ref no!!!!!!!!' ||
P_TY_PCDETAILS.TRN_REF_NO);
P_TY_PCDETAILS.BRANCH := P_TY_RETAIL_TELLER.BRANCH_CODE;
DBG('returned after fetching values for branch!!!!!!!!!!!!!!!!!!!' ||
P_TY_PCDETAILS.BRANCH);
P_TY_PCDETAILS.XREF := P_TY_RETAIL_TELLER.XREF;
DBG('returned after fetching values for branch and xreff!!!!!!!!!!!!!!!!!!!' ||
P_TY_PCDETAILS.XREF);
DBG('returned after fetching values for branch and xreff!!!!!!!!!!!!!!!!!!!');
IF P_TY_PCDETAILS.BRANCH IS NOT NULL AND
P_TY_PCDETAILS.XREF IS NOT NULL THEN
INSERT INTO DETB_PCTRN
(BRANCH,
XREF,
TRN_REF_NO,
CUST_NAME,
CUST_ADDR1,
CUST_ADDR2,
CUST_ADDR3,
PC_BANK_CODE,
PC_ACCOUNT_NO,
PC_PROD_CAT,
PC_NETWORK_ID,
BEN_ACCT_TYPE,
BEN_NAME,
BEN_ADDR1,
BEN_ADDR2,
BEN_ADDR3,
SENDER_RECVR_INFO1,
SENDER_RECVR_INFO2,
SENDER_RECVR_INFO3,
COMM_MODE,
MOBILENO_EMAILID
--email_id
)
VALUES
(P_TY_PCDETAILS.BRANCH,
P_TY_PCDETAILS.XREF,
P_TY_PCDETAILS.TRN_REF_NO,
P_TY_PCDETAILS.CUST_NAME,
P_TY_PCDETAILS.CUST_ADDR1,
P_TY_PCDETAILS.CUST_ADDR2,
P_TY_PCDETAILS.CUST_ADDR3,
P_TY_PCDETAILS.PC_BANK_CODE,
P_TY_PCDETAILS.PC_ACCOUNT_NO,
P_TY_PCDETAILS.PC_PROD_CAT,
P_TY_PCDETAILS.PC_NETWORK_ID,
P_TY_PCDETAILS.BEN_ACCT_TYPE,
P_TY_PCDETAILS.BEN_NAME,
P_TY_PCDETAILS.BEN_ADDR1,
P_TY_PCDETAILS.BEN_ADDR2,
P_TY_PCDETAILS.BEN_ADDR3,
P_TY_PCDETAILS.SENDER_RECVR_INFO1,
P_TY_PCDETAILS.SENDER_RECVR_INFO2,
P_TY_PCDETAILS.SENDER_RECVR_INFO3,
P_TY_PCDETAILS.COMM_MODE,
P_TY_PCDETAILS.MOBILENO_EMAILID);
-- p_ty_pcdetails.email_id);
DBG('returned after inserting values into detb_pctrn
table!!!!!!!!!!!!!!!!!!');
DBG('returned after fetching values for branch and xreff.....' ||
P_TY_PCDETAILS.BRANCH);
DBG('returned after fetching values for branch and xreff.....' ||
P_TY_PCDETAILS.MOBILENO_EMAILID);
DBG('returned after fetching values for branch and xreff.....' ||
P_TY_PCDETAILS.PC_BANK_CODE);
END IF;

RETURN TRUE;
DBG('returned true after inserting all the values%%%%%%%%%%%%%%%%%%%%%%%%');
EXCEPTION
WHEN OTHERS THEN
DBG('E',
'Exception caught while uploading FN_UPLOAD_PC with sqlerrm : ' ||
SQLERRM);
OVPKSS.PR_APPENDTBL('GW-RTL-002', NULL); -- Failed in validating the request.
P_RET := -1;
RETURN FALSE;
END FN_UPLOAD_PC;
--NEFT/RTGS CHANGES 1405
---FCUBS11.2 Stale Cheque Validation
FUNCTION FN_VALIDATE_STALE_CHECK(P_RTL_TLR_UPD IN OUT DETB_UPLOAD_RTL_TELLER
%ROWTYPE,
P_ERR_CODE IN OUT ERTB_MSGS .ERR_CODE%TYPE,
P_ERR_PARAM IN OUT ERTB_MSGS.MESSAGE%TYPE)
RETURN BOOLEAN IS

L_ERR_CODE VARCHAR2(100);
L_ERR_PARAMS VARCHAR2(200);
L_ROW_CSTB_CLEARING_MASTER CSTB_CLEARING_MASTER%ROWTYPE; --tanushree
L_STALE_CHECK_DAYS NUMBER(4);
L_NO_OF_DAYS NUMBER(4);
OVERRIDE_EXCEPTION EXCEPTION;
P_OVERRIDE_FLAG VARCHAR2(1);
L_ACTION_ON_EXCEPTION VARCHAR2(2);
L_STATUS_ON_SAVE VARCHAR2(2);
L_WHAT_TO_DO VARCHAR2(2);
L_AUTH_STATUS VARCHAR2(2);
L_ERROR_CODE VARCHAR2(20);
L_ERROR_PARAMETER VARCHAR2(2);
P_ACTION_ON_OVERRIDE VARCHAR2(1) := 'Y';
P_ACTION_ON_UPLOAD_STATUS VARCHAR2(1);

BEGIN
DBG('In fn_validate_stale_check..');
--fcubs11.2 it1 sfr1219 starts
DBG(' GWPKS_UTIL.G_REJECTFLAG ' || GWPKS_UTIL.G_REJECTFLAG);
DBG('gwpks_util.pkg_acttype' || GWPKS_UTIL.PKG_ACTTYPE);
IF GWPKS_UTIL.PKG_ACTTYPE = 'INPUT' THEN

--fcubs11.2 it1 sfr1219 ends


BEGIN
SELECT CHEQUE_STALE_DAYS
INTO L_STALE_CHECK_DAYS
FROM STTMS_BRANCH
WHERE BRANCH_CODE = GLOBAL.CURRENT_BRANCH;
DBG('here1');
DBG('global.current_branc' || GLOBAL.CURRENT_BRANCH);
DBG('l_stale_check_days' || L_STALE_CHECK_DAYS);
EXCEPTION
WHEN OTHERS THEN
DBG('l_stale_check_days' || L_STALE_CHECK_DAYS);
END;
IF P_RTL_TLR_UPD.CHEQUE_ISSUE_DATE < P_RTL_TLR_UPD.INSTR_DATE THEN
IF L_STALE_CHECK_DAYS IS NOT NULL THEN
DBG('here3');
DBG('p_rtl_tlr_upd.CHEQUEISSUEDATE' ||
P_RTL_TLR_UPD.CHEQUE_ISSUE_DATE);
DBG('p_rtl_tlr_upd.instr_date' || P_RTL_TLR_UPD.INSTR_DATE);

L_NO_OF_DAYS := ABS(TO_DATE(P_RTL_TLR_UPD.CHEQUE_ISSUE_DATE,
'dd/mm/yyyy') -
TO_DATE(P_RTL_TLR_UPD.INSTR_DATE,
'dd-mon-yyyy'));
DBG('L_NO_OF_DAYS' || L_NO_OF_DAYS);
DBG('L_NO_OF_DAYS' || L_NO_OF_DAYS);
DBG('l_stale_check_days' || L_STALE_CHECK_DAYS);
IF L_NO_OF_DAYS > L_STALE_CHECK_DAYS THEN
DBG('L_NO_OF_DAYS > l_stale_check_days');
P_ERR_CODE := 'CG-IO0115';
OVPKS.PR_APPENDTBL('CG-IO0115', NULL);
DBG('REGISTERD ');

DBG('**************');
IF NVL(GWPKS_UTIL.G_REJECTFLAG, 'N') = 'Y' AND
P_RTL_TLR_UPD.PRODUCT_CODE IN ('LOCH', 'CQWL') AND
GWPKS_UTIL.PKG_ACTTYPE = 'SAVEAUTOAUTH' THEN
IF P_RTL_TLR_UPD.REJECT_CODE IS NULL THEN
DBG('O',
'in fn_upload: failed while validating in reject code : Reject
Code is not input. Status of the cheque would be not used');
P_ERR_CODE := 'CG-REJE-001';
OVPKSS.PR_APPENDTBL('CG-REJE-001', NULL);
END IF;
END IF;
DBG('*********************');
END IF;
END IF;
END IF;
END IF; --fcubs11.2 it1 sfr1219
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('In When others of cgpks_upload_cg_create.fn_validate_stale_check..');
DBG(SQLERRM);
OVPKS.PR_APPENDTBL('CG-UPLD-001',
'fn_validate_stale_checkk~' || SQLCODE);
RETURN FALSE;
END FN_VALIDATE_STALE_CHECK;
---FCUBS11.2 Stale Cheque Validation
--fcubs11.2 it1 sfr 727 starts
FUNCTION FN_VALIDATE_NO_OF_REJECTIONS(P_SOURCE IN COTMS_SOURCE.SOURCE_CODE
%TYPE,
P_TY_CLG_REC IN REC_CSTB_CLG_REC,
P_RTL_TLR_UPD IN OUT DETB_UPLOAD_RTL_TELLER
%ROWTYPE,
P_CHECK_NO IN OUT VARCHAR2,
P_ERR_CODE IN OUT ERTB_MSGS .ERR_CODE
%TYPE,
P_ERR_PARAM IN OUT ERTB_MSGS.MESSAGE
%TYPE)
RETURN BOOLEAN IS

L_ERR_CODE VARCHAR2(100);
L_ERR_PARAMS VARCHAR2(200);
L_ROW_CSTB_CLEARING_MASTER CSTB_CLEARING_MASTER%ROWTYPE;
L_STALE_CHECK_DAYS NUMBER(4);
L_NO_OF_DAYS NUMBER(4);
OVERRIDE_EXCEPTION EXCEPTION;
P_OVERRIDE_FLAG VARCHAR2(1);
L_ACTION_ON_EXCEPTION VARCHAR2(2);
L_STATUS_ON_SAVE VARCHAR2(2);
L_WHAT_TO_DO VARCHAR2(2);
P_AUTH_STAT VARCHAR2(2);
L_AUTH_STATUS VARCHAR2(2);
L_ERROR_CODE VARCHAR2(20);
L_ERROR_PARAMETER VARCHAR2(2);
P_ACTION_ON_OVERRIDE VARCHAR2(1) := 'Y';
P_ACTION_ON_UPLOAD_STATUS VARCHAR2(1);
L_SOURCE COTMS_SOURCE.SOURCE_CODE%TYPE;
L_REFNO CSTB_CLEARING_MASTER.REFERENCE_NO%TYPE;
L_XREF CSTB_CLEARING_MASTER.XREF%TYPE;
L_TY_CLG_REC CGPKS_UPLOAD_CG_REJECT.REC_CSTB_CLG_REC;
L_MOD_NO NUMBER(3);
L_NO_CHEQUE_REJECTIONS NUMBER(4);
L_MAX_NO_CHEQUE_REJECTIONS NUMBER(4);
L_NO_OF_CHQ_REJ_RESET_ON DATE;
L_CHEQUE_BOOK_FACILITY STTMS_CUST_ACCOUNT.CHEQUE_BOOK_FACILITY%TYPE;
L_REJECT_CODE CSTB_CLEARING_MASTER.REJECT_CODE%TYPE;
L_INCLUDE_FOR_RETURN_COUNTER VARCHAR2(1);
L_COUNT1 NUMBER;
L_ERR_PARAM VARCHAR2(40);
L_R_VALUE VARCHAR2(1) := 'R';
L_RET_VAL VARCHAR2(30);

BEGIN
DBG('In cgpks_upload_cg_create.fn_validate_no_of_rejections');

DBG('Validating no_of_rejections.' || P_RTL_TLR_UPD.REJECT_CODE);

DBG('check_no' || P_CHECK_NO);
DBG('p_ty_clg_rec.ty_clg_upld.rembranch' ||
P_TY_CLG_REC.TY_CLG_UPLD.REMBRANCH);
DBG('p_rtl_tlr_upd.txn_acc' || P_RTL_TLR_UPD.TXN_ACC);
DBG('p_rtl_tlr_upd.branch_code' || P_RTL_TLR_UPD.BRANCH_CODE);

IF NVL(GWPKS_UTIL.G_REJECTFLAG, 'N') = 'Y' AND


P_RTL_TLR_UPD.PRODUCT_CODE IN ('LOCH', 'CQWL') THEN
-- if GWPKS_UTIL.PKG_FUNC in ('LOCH','1013')
IF GWPKS_UTIL.PKG_ACTTYPE = 'SAVEAUTOAUTH' THEN
IF P_RTL_TLR_UPD.REJECT_CODE IS NULL THEN
DBG('O',
'in fn_upload: failed while validating in reject code : Reject Code
is not input. Status of the cheque would be not used');
-- P_ERR_CODE := 'CG-REJE-001';--FCUBS11.2 ITR2 SFR#58 changes --
FCUBS11.2 SFR362 ITR2
OVPKSS.PR_APPENDTBL('CG-REJE-001', NULL);

END IF;
END IF;
--FCUBS11.2 ITR2 SFR#58 changes
--FCUBS11.2 SFR362 ITR2 Startz Commenting the below call
/* IF NOT cspkss_upload.fn_what_to_do(p_source,
'RT',
l_what_to_do,
l_auth_status,
l_err_code,
l_err_param) THEN
dbg('cspkss_upload.fn_what_to_do returned FALSE');

RETURN FALSE;
END IF;
dbg('l_what_to_do===>' || l_what_to_do);
dbg('l_auth_status===>' || l_auth_status);
p_auth_stat := l_auth_status;
IF (l_what_to_do = 'R') THEN
dbg('What to do has returned Reject Status. Hence exiting..');
RETURN FALSE;

ELSIF l_what_to_do = 'M' AND nvl(GWPKS_UTIL.G_REJECTFLAG, 'N') = 'Y'


THEN
RAISE override_exception;
END IF;
--FCUBS11.2 ITR2 SFR#58 changes */
--FCUBS11.2 SFR362 ITR2 Endz
IF P_RTL_TLR_UPD.REJECT_CODE IS NOT NULL THEN
--FCUBS11.2 ITR2 SFR#58 changes
BEGIN
SELECT NVL(NO_CHEQUE_REJECTIONS, 0),
NVL(MAX_NO_CHEQUE_REJECTIONS, 0),
NO_OF_CHQ_REJ_RESET_ON,
NVL(CHEQUE_BOOK_FACILITY, 'N')
INTO L_NO_CHEQUE_REJECTIONS,
L_MAX_NO_CHEQUE_REJECTIONS,
L_NO_OF_CHQ_REJ_RESET_ON,
L_CHEQUE_BOOK_FACILITY
FROM STTM_CUST_ACCOUNT
WHERE CUST_AC_NO = P_RTL_TLR_UPD.TXN_ACC
AND /*BRANCH_CODE = p_rtl_tlr_upd.Branch_Code*/
BRANCH_CODE = P_RTL_TLR_UPD.TXN_BRANCH; --AEDMBU PREUAT3
SFR#DEFLT00005936 Changes
DBG('p_rtl_tlr_upd.txn_branch=' || P_RTL_TLR_UPD.TXN_BRANCH);
EXCEPTION
WHEN OTHERS THEN
DBG('IN WHEN OTHERS OF CHEQUE_REJECTIONS' || SQLERRM ||
DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
END;
DBG('l_NO_CHEQUE_REJECTIONS' || L_NO_CHEQUE_REJECTIONS);
DBG(' L_MAX_NO_CHEQUE_REJECTIONS' || L_MAX_NO_CHEQUE_REJECTIONS);
DBG('l_cheque_book_facility' || L_CHEQUE_BOOK_FACILITY);

BEGIN

SELECT INCLUDE_FOR_RETURN_COUNTER
INTO L_INCLUDE_FOR_RETURN_COUNTER
FROM CSTB_CLG_REJ_REASON
WHERE REASON_CODE = P_RTL_TLR_UPD.REJECT_CODE
AND AUTH_STAT = 'A'
AND RECORD_STAT = 'O';
DBG('l_INCLUDE_FOR_RETURN_COUNTER' ||
L_INCLUDE_FOR_RETURN_COUNTER);
EXCEPTION
WHEN OTHERS THEN
DBG('IN WHEN OTHERS OF CHEQUE_REJECTIONS' || SQLERRM ||
DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
END;

IF L_INCLUDE_FOR_RETURN_COUNTER = 'Y' THEN


L_NO_CHEQUE_REJECTIONS := L_NO_CHEQUE_REJECTIONS + 1;
END IF;
DBG('after increment:' || L_NO_CHEQUE_REJECTIONS);
DBG('l_mod_no :' || L_MOD_NO);
DBG('inserting into catms_check_detail');
DBG('l_reject_code---->' || P_RTL_TLR_UPD.REJECT_CODE);
DBG('p_rtl_tlr_upd.Xref' || P_RTL_TLR_UPD.XREF);
DBG('p_ty_clg_rec.ty_clg_upld.instramt' ||
P_RTL_TLR_UPD.TXN_AMOUNT);
DBG('p_ty_clg_rec.ty_clg_upld.instrdate' ||
P_RTL_TLR_UPD.INSTR_DATE);
DBG(' p_ty_clg_rec.ty_clg_upld.txndate' || P_RTL_TLR_UPD.TRN_DT);
DBG('here' || GLOBAL.USER_ID);
DBG(' l_NO_CHEQUE_REJECTIONS' || L_NO_CHEQUE_REJECTIONS);
CASAPKS.PKG_AMOUNT := 0; --BLR_11.2_IMP_BDTOBL_SFR#194
L_RET_VAL := CASAPKS.FN_UPDATE_CHECK_STATUS(GLOBAL.CURRENT_BRANCH,

GLOBAL.APPLICATION_DATE,
P_RTL_TLR_UPD.TXN_ACC,
GLOBAL.USER_ID,
P_CHECK_NO,
'R',
P_ERR_CODE,
P_RTL_TLR_UPD.XREF);
DBG('returning from casapks.fn_update_check_status');

DBG('branch.' || P_RTL_TLR_UPD.BRANCH_CODE);
DBG('account.' || P_RTL_TLR_UPD.TXN_ACC);
BEGIN
SELECT MAX(MOD_NO)
INTO L_MOD_NO
FROM CATMS_CHECK_DETAILS
WHERE /*branch = p_rtl_tlr_upd.Branch_Code*/
BRANCH = P_RTL_TLR_UPD.TXN_BRANCH --AEDMBU PREUAT3 SFR#DEFLT00005936
Changes
AND ACCOUNT = P_RTL_TLR_UPD.TXN_ACC
AND CHECK_NO = P_CHECK_NO;
DBG('mod no' || L_MOD_NO);
EXCEPTION
WHEN OTHERS THEN
DBG('IN WHEN OTHERS OF CHEQUE_REJECTIONS' || SQLERRM ||
DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
END;
DBG('p_rtl_tlr_upd.txn_acc' || P_RTL_TLR_UPD.TXN_ACC);
DBG('p_rtl_tlr_upd.Branch_Code' || P_RTL_TLR_UPD.BRANCH_CODE);
UPDATE CATM_CHECK_DETAILS
SET REJECT_CODE = P_RTL_TLR_UPD.REJECT_CODE
WHERE /*branch = p_rtl_tlr_upd.Branch_Code*/
BRANCH = P_RTL_TLR_UPD.TXN_BRANCH --AEDMBU PREUAT3 SFR#DEFLT00005936
Changes
AND ACCOUNT = P_RTL_TLR_UPD.TXN_ACC
AND CHECK_NO = P_CHECK_NO
AND MOD_NO = L_MOD_NO;
DBG('l_reject_code---->' || P_RTL_TLR_UPD.REJECT_CODE);
DBG('p_rtl_tlr_upd.Branch_Code' || P_RTL_TLR_UPD.BRANCH_CODE);
DBG('p_rtl_tlr_upd.txn_acc' || P_RTL_TLR_UPD.TXN_ACC);
DBG(' check_no' || P_CHECK_NO);
DBG('Updated catms_check_details ::==========' || SQL%ROWCOUNT);

-- END IF;
DBG('PRESENTATION_DATE---->' ||
ADD_MONTHS(GLOBAL.APPLICATION_DATE, -12));
DBG('reject_code---->' || P_RTL_TLR_UPD.REJECT_CODE);
DBG('p_rtl_tlr_upd.txn_acc---->' || P_RTL_TLR_UPD.TXN_ACC);
DBG('p_rtl_tlr_upd.Branch_Code--->' || P_RTL_TLR_UPD.BRANCH_CODE);
DBG('PRESENTATION_DATE--IN NEW FOrmat' ||
TO_DATE(TO_CHAR(ADD_MONTHS(GLOBAL.APPLICATION_DATE, -12)),
'DD/MM/YY'));
BEGIN
/*SELECT COUNT(*)
INTO L_COUNT1
FROM CATMS_CHECK_DETAILS
WHERE ACCOUNT = p_rtl_tlr_upd.txn_acc
and BRANCH = p_rtl_tlr_upd.Branch_Code
AND STATUS = 'R'
and nvl(PRESENTATION_DATE, trunc(maker_dt_stamp, 'DDD')) >=
TO_DATE(TO_CHAR(add_months(global.application_date, -12)),
'DD/MM/YY')
and reject_code is not null;*/

--FCUBS 11.2 ITR1 SFR#1224 code changes starts


SELECT COUNT(*)
INTO L_COUNT1
FROM CATMS_CHECK_DETAILS X, CSTB_CLG_REJ_REASON Y
WHERE X.REJECT_CODE = Y.REASON_CODE
AND Y.INCLUDE_FOR_RETURN_COUNTER = 'Y'
AND ACCOUNT = P_RTL_TLR_UPD.TXN_ACC
AND /*BRANCH = p_rtl_tlr_upd.Branch_Code*/
BRANCH = P_RTL_TLR_UPD.TXN_BRANCH --AEDMBU PREUAT3
SFR#DEFLT00005936 Changes
AND STATUS = 'R'
AND NVL(PRESENTATION_DATE, TRUNC(X.MAKER_DT_STAMP, 'DDD')) >=
TO_DATE(TO_CHAR(ADD_MONTHS(GLOBAL.APPLICATION_DATE, -12)),
'DD/MM/YY');
--FCUBS 11.2 ITR1 SFR#1224 code changes ends

EXCEPTION
WHEN OTHERS THEN
DBG('IN WHEN OTHERS OF CHEQUE_REJECTIONS' || SQLERRM ||
DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
END;
DBG('L_COUNT1' || L_COUNT1);

DBG('Current no of cheque rejections' || L_COUNT1);


DBG('Maintained no of cheque rejections' ||
L_MAX_NO_CHEQUE_REJECTIONS);
DBG('CHEQUE_BOOK_FACILITY before updation' ||
L_CHEQUE_BOOK_FACILITY);
DBG('l_NO_CHEQUE_REJECTIONS' || L_NO_CHEQUE_REJECTIONS);

IF L_COUNT1 > L_MAX_NO_CHEQUE_REJECTIONS

THEN
L_CHEQUE_BOOK_FACILITY := 'N';
END IF;

UPDATE STTM_CUST_ACCOUNT
SET NO_CHEQUE_REJECTIONS = L_NO_CHEQUE_REJECTIONS,
CHEQUE_BOOK_FACILITY = L_CHEQUE_BOOK_FACILITY
WHERE CUST_AC_NO = P_RTL_TLR_UPD.TXN_ACC
AND /*BRANCH_CODE = p_rtl_tlr_upd.Branch_Code;*/
BRANCH_CODE = P_RTL_TLR_UPD.TXN_BRANCH; --AEDMBU PREUAT3
SFR#DEFLT00005936 Changes
BEGIN
SELECT NO_CHEQUE_REJECTIONS,
MAX_NO_CHEQUE_REJECTIONS,
NO_OF_CHQ_REJ_RESET_ON,
CHEQUE_BOOK_FACILITY
INTO L_NO_CHEQUE_REJECTIONS,
L_MAX_NO_CHEQUE_REJECTIONS,
L_NO_OF_CHQ_REJ_RESET_ON,
L_CHEQUE_BOOK_FACILITY
FROM STTM_CUST_ACCOUNT
WHERE CUST_AC_NO = P_RTL_TLR_UPD.TXN_ACC
AND /*BRANCH_CODE = p_rtl_tlr_upd.Branch_Code;*/
BRANCH_CODE = P_RTL_TLR_UPD.TXN_BRANCH; --AEDMBU PREUAT3
SFR#DEFLT0000l Changes
EXCEPTION
WHEN OTHERS THEN
DBG('IN WHEN OTHERS OF CHEQUE_REJECTIONS' || SQLERRM ||
DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
END;
DBG('l_NO_CHEQUE_REJECTIONS' || L_NO_CHEQUE_REJECTIONS);
DBG(' L_MAX_NO_CHEQUE_REJECTIONS' || L_MAX_NO_CHEQUE_REJECTIONS);
DBG('l_cheque_book_facility' || L_CHEQUE_BOOK_FACILITY);
DBG('AFTER updation' || L_CHEQUE_BOOK_FACILITY);
END IF; --FCUBS11.2 ITR2 SFR#58 changes
END IF; --FCUBS 11.2 ITR1 SFR#1224 code changes

RETURN TRUE;

EXCEPTION
WHEN OTHERS THEN

DBG('In WOT of fn_build_no_rejection ' || SQLERRM || ' and trace: ' ||


DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
RETURN FALSE;
END FN_VALIDATE_NO_OF_REJECTIONS;
--fcubs11.2 it1 sfr 727 ends

--Changes FCUBS_11 2 0 0 0$BOMLAE_R22_10332_T24, CR 10332_T24 Special deal starts

FUNCTION FN_GET_DEAL_CUSTOMER(P_ACC IN VARCHAR2,


P_CCY IN VARCHAR2,
P_CUST_NO OUT VARCHAR2) RETURN BOOLEAN IS

BEGIN

-- Get the customer id for the input account


BEGIN
SELECT CU.CUSTOMER_NO
INTO P_CUST_NO
FROM STTM_CUST_ACCOUNT CA, STTM_CUSTOMER CU
WHERE CA.CUST_NO = CU.CUSTOMER_NO
AND CA.CUST_AC_NO = P_ACC;
EXCEPTION
WHEN OTHERS THEN
-- Check if the input account is a virtual accounT
-- and get the corresponding customer
BEGIN
SELECT CU.CUSTOMER_NO
INTO P_CUST_NO
FROM STTM_CUST_ACCOUNT CA,
STTM_CUSTOMER CU,
STTM_VIRTUAL_ACCOUNTS VA
WHERE VA.PHY_ACC = CA.CUST_AC_NO
AND CA.CUST_NO = CU.CUSTOMER_NO
AND VA.VIR_ACC_NO = P_ACC
AND VA.CCY = P_ACC;
EXCEPTION
WHEN OTHERS THEN
DBG('No customer exists for the account number,' || P_ACC ||
' ERRMSG : ' || SQLERRM);
RETURN FALSE;
END;
END;

RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('RT', 'Failed in fn_get_deal_customer' || SQLERRM);
RETURN FALSE;
END FN_GET_DEAL_CUSTOMER;

FUNCTION FN_VALIDATE_NEGO_DEAL(P_TY_RETAILTLR_UPD IN OUT DETB_UPLOAD_RTL_TELLER


%ROWTYPE,
P_RET IN OUT NUMBER,
P_TYP_ERR IN OUT OVPKSS.TBL_ERROR,
P_SOURCE IN VARCHAR2,
P_ERR_CODE IN OUT VARCHAR2,
P_ERR_PARAM IN OUT VARCHAR2)
RETURN BOOLEAN IS

L_ACC STTM_CUST_DEAL_DETAILS.CUSTOMER_ACCOUNT%TYPE;
L_BUY_CCY STTM_CUST_DEAL_DETAILS.BUY_CURRENCY%TYPE;
L_SELL_CCY STTM_CUST_DEAL_DETAILS.SELL_CURRENCY%TYPE;
L_DEAL_CCY STTM_CUST_DEAL_DETAILS.DEAL_CURRENCY%TYPE;
L_VAL_DATE STTM_CUST_DEAL_DETAILS.DEAL_EXPIRY_DATE%TYPE;
L_DEAL_AMT STTM_CUST_DEAL_DETAILS.DEAL_AMOUNT%TYPE;
L_UTIL_AMT STTM_CUST_DEAL_DETAILS_MULTI.UTILIZED_AMOUNT%TYPE;
L_TXN_CUST_NO VARCHAR2(20);
L_CUST_NO VARCHAR2(20);
L_VALUE_DT_CNT NUMBER;
L_COUNTRY_CODE VARCHAR2(10);

--4903 changes starts


L_CURRENT_UTIL DETB_RTL_TELLER.TXN_AMOUNT%TYPE;
L_TXN_AMT DETB_RTL_TELLER.TXN_AMOUNT%TYPE;
-- l_deal_ccy detb_rtl_teller.txn_ccy%type;
--4903 changes ends
--T24 Special Deal Phase 2 changes starts
L_DR_AC VARCHAR2(20);
L_CR_AC VARCHAR2(20);
L_DR_CCY VARCHAR2(3);
L_CR_CCY VARCHAR2(3);
L_TXN_CCY VARCHAR2(3);
L_ERR_TBL OVPKSS.TBL_ERROR; --UAE UAT4 DEFLT00023521 19-Sep-12 Changes
L_ERR_TYPE ERTB_MSGS.TYPE%TYPE DEFAULT NULL;
L_FOUND_ERR BOOLEAN DEFAULT FALSE;
L_ACCOUNT_HEAD CLTM_PRODUCT_RTH.ACCOUNT_HEAD%TYPE;
--T24 Special Deal Phase 2 changes ends
BEGIN
DBG('RT', 'Inside fn_validate_nego_deal' || P_SOURCE);

--4903 changes starts<If condition for Deal cntry>


IF INSTR(NVL(CSPKS_OS_PARAM.GET_PARAM_VAL('T24_DEAL_CNTRY'), '~**~'),
NVL(CSPKS_OS_PARAM.GET_PARAM_VAL('COUNTRY_CODE'),
GLOBAL.COUNTRY_CODE)) > 0 THEN
DBG('Inside T24 deal cntry');
-- Misc customer credit
--4903 changes starts
IF GWPKS_UTIL.PKG_FUNC IN
('1408', '1008', '1401', '1001', '8207', '8206') OR
P_SOURCE NOT IN ('FLEXSWITCH', 'FLEXBRANCH', 'FLEXCUBE') THEN
/*IF GWPKS_UTIL.PKG_FUNC IN ('1408') OR
UPPER(P_TY_RETAILTLR_UPD.PRODUCT_CODE) = 'MSCC' THEN*/
--4903 changes ends
DBG('RT',
'p_ty_retailtlr_upd.Negotiation_Ref_No' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO);

-- Allow nego deal validation only for UAE region


--4903 changes starts
/*BEGIN
select PARAM_VAL
into l_country_code
from cstb_param
where param_name = 'COUNTRY_CODE';
EXCEPTION
WHEN OTHERS THEN
l_country_code := NULL;
END;

IF l_country_code IS NOT NULL AND l_country_code = 'AE' THEN*/


--4903 changes ends

IF P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO IS NOT NULL THEN


--Gourab@04sep2016 changes starts <FX Purchase and sale should not use
negotiated deal>
IF GWPKS_UTIL.PKG_FUNC IN ('8206', '8207') THEN
DBG('FX Purchase and sale should not use Deals: ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO);
OVPKSS.PR_APPENDTBL('DE-NEG-052', NULL);
END IF;
--Gourab@04sep2016 changes ends <FX Purchase and sale should not use
negotiated deal>
--T24 Special Deal Phase 2 changes starts
BEGIN
SELECT T.CUSTOMER_ACCOUNT,
T.BUY_CURRENCY,
T.SELL_CURRENCY,
T.DEAL_CURRENCY,
T.DEAL_EXPIRY_DATE,
T.DEAL_AMOUNT,
--4903 changes starts
T.TOT_UTILISED_AMOUNT
--4903 changes ends
INTO L_ACC,
L_BUY_CCY,
L_SELL_CCY,
L_DEAL_CCY,
L_VAL_DATE,
L_DEAL_AMT,
--4903 changes starts
L_CURRENT_UTIL
--4903 changes ends
FROM STTM_CUST_DEAL_DETAILS T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
AND T.AUTH_STAT = 'A'
AND T.RECORD_STAT = 'O';
EXCEPTION
WHEN OTHERS THEN
DBG('RT',
'p_ty_retailtlr_upd.Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' : ' || SQLERRM);
OVPKSS.PR_APPENDTBL('DL-NEG-012', NULL);
RETURN FALSE;
END;
DBG('here to determine the deal utilisation amount based on ccy');
IF L_DEAL_CCY = P_TY_RETAILTLR_UPD.TXN_CCY THEN
DBG('deal ccy is same as txn ccy');
L_TXN_AMT := P_TY_RETAILTLR_UPD.TXN_AMOUNT;
--T24 Special Deal Phase 2 changes starts
L_TXN_CCY := P_TY_RETAILTLR_UPD.TXN_CCY;
--T24 Special Deal Phase 2 changes ends
ELSIF L_DEAL_CCY = P_TY_RETAILTLR_UPD.OFS_CCY THEN
DBG('deal ccy is equal to ofs ccy');
L_TXN_AMT := P_TY_RETAILTLR_UPD.OFS_AMOUNT;
--T24 Special Deal Phase 2 changes starts
L_TXN_CCY := P_TY_RETAILTLR_UPD.OFS_CCY;
--T24 Special Deal Phase 2 changes ends
END IF;
IF (GWPKS_UTIL.PKG_FUNC IN ('1408', '1401', '8207') OR
UPPER(P_TY_RETAILTLR_UPD.PRODUCT_CODE) IN
('MSCC', 'CHDP', 'FXPA')) THEN
L_CR_CCY := P_TY_RETAILTLR_UPD.TXN_CCY;
L_DR_CCY := P_TY_RETAILTLR_UPD.OFS_CCY;
L_DR_AC := P_TY_RETAILTLR_UPD.OFS_ACC;
L_CR_AC := P_TY_RETAILTLR_UPD.TXN_ACC;
ELSIF ((GWPKS_UTIL.PKG_FUNC IN ('1008', '1001', '8206') OR
UPPER(P_TY_RETAILTLR_UPD.PRODUCT_CODE) IN
('MSCD', 'CHWL', 'FXSA')) OR
P_SOURCE NOT IN ('FLEXBRANCH', 'FLEXCUBE', 'FLEXSWITCH')) THEN
L_CR_CCY := P_TY_RETAILTLR_UPD.OFS_CCY;
L_DR_CCY := P_TY_RETAILTLR_UPD.TXN_CCY;
L_DR_AC := P_TY_RETAILTLR_UPD.TXN_ACC;
L_CR_AC := P_TY_RETAILTLR_UPD.OFS_ACC;
END IF;
CSPKS_SPECIAL_DEAL_UTILS.PR_VALIDATE_DEAL(P_TY_RETAILTLR_UPD.TRN_REF_NO,

P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO,
'RT',
P_SOURCE,
GWPKS_UTIL.PKG_FUNC,
'NEW',
P_TY_RETAILTLR_UPD.TXN_ACC,
L_DR_CCY,
L_CR_CCY,
GLOBAL.APPLICATION_DATE,
L_TXN_AMT,
L_TXN_CCY,

P_TY_RETAILTLR_UPD.NEGOTIATED_RATE,
GLOBAL.CURRENT_BRANCH,
P_ERR_CODE,
P_ERR_PARAM);
L_ERR_TBL := OVPKSS.GL_TBLERROR;
FOR I IN 1 .. L_ERR_TBL.COUNT LOOP
L_ERR_TYPE := OVPKSS.FN_GETTYPE(L_ERR_TBL(I).ERR_CODE);
IF L_ERR_TYPE IN ('E', 'X') THEN
DBG('Error Found... ' || L_ERR_TBL(I).ERR_CODE);
L_FOUND_ERR := TRUE;
P_ERR_CODE := L_ERR_TBL(I).ERR_CODE;
P_ERR_PARAM := L_ERR_TBL(I).PARAMS;
OVPKSS.PR_APPENDTBL(P_ERR_CODE, P_ERR_PARAM);
RETURN FALSE;
ELSIF L_ERR_TYPE IN ('I', 'O') AND L_ERR_TBL(I)
.ERR_CODE = 'DE-NEG-050' THEN
P_ERR_CODE := L_ERR_TBL(I).ERR_CODE;
P_ERR_PARAM := L_ERR_TBL(I).PARAMS;
OVPKSS.PR_APPENDTBL(P_ERR_CODE, P_ERR_PARAM);
END IF;
END LOOP;
/*BEGIN
SELECT t.customer_account,
t.buy_currency,
t.sell_currency,
t.deal_currency,
t.deal_expiry_date,
t.deal_amount,
--4903 changes starts
t.tot_utilised_amount
--4903 changes ends
INTO l_acc,
l_buy_ccy,
l_sell_ccy,
l_deal_ccy,
l_val_date,
l_deal_amt,
--4903 changes starts
l_current_util
--4903 changes ends
FROM sttm_cust_deal_details t
WHERE t.internal_deal_ref_no =
p_ty_retailtlr_upd.negotiation_ref_no
AND t.auth_stat = 'A'
AND t.record_stat = 'O';
EXCEPTION
WHEN OTHERS THEN
dbg('RT',
'p_ty_retailtlr_upd.Negotiation_Ref_No : ' ||
p_ty_retailtlr_upd.negotiation_ref_no || ' : ' || SQLERRM);
ovpkss.pr_appendtbl('DL-NEG-012', NULL);
RETURN FALSE;
END;
--4903 changes starts
dbg('here to determine the deal utilisation amount based on ccy');
IF l_deal_ccy = p_ty_retailtlr_upd.txn_ccy THEN
dbg('deal ccy is same as txn ccy');
l_txn_amt := p_ty_retailtlr_upd.txn_amount;
ELSIF l_deal_ccy = p_ty_retailtlr_upd.ofs_ccy THEN
dbg('deal ccy is equal to ofs ccy');
l_txn_amt := p_ty_retailtlr_upd.ofs_amount;
END IF;
--4903 changes ends
--4903 changes starts
\*BEGIN
SELECT SUM(T.UTILIZED_AMOUNT)
INTO L_UTIL_AMT
FROM STTM_CUST_DEAL_DETAILS_MULTI T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO;
EXCEPTION
WHEN OTHERS THEN
L_UTIL_AMT := 0;
END;*\
--4903 changes ends

-- Check if deal date or value date in any of the external transactions


utilising the deal,
-- is greater than application date

\* SELECT COUNT(T.VALUE_DATE)
INTO L_VALUE_DT_CNT
FROM STTM_CUST_DEAL_DETAILS_MULTI T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
AND T.VALUE_DATE > GLOBAL.APPLICATION_DATE;*\
-- 4960 changes starts
IF l_val_date < global.application_date THEN
dbg('RT',
'Deal Expiry Date is less than application date for
Negotiation_Ref_No :' ||
p_ty_retailtlr_upd.negotiation_ref_no || ', Deal Date: ' ||
l_val_date);
ovpkss.pr_appendtbl('DE-NEG-050', NULL);
END IF;
-- 4960 changes ends
-- check if customer of deal account and customer of transaction account
are same
IF NOT fn_get_deal_customer(p_ty_retailtlr_upd.txn_acc,
p_ty_retailtlr_upd.txn_ccy,
l_txn_cust_no) THEN
dbg('Failed in fn_get_deal_customer');
l_txn_cust_no := NULL;
-- RETURN FALSE;
END IF;

IF NOT fn_get_deal_customer(l_acc, l_deal_ccy, l_cust_no) THEN


dbg('Failed in fn_get_deal_customer');
l_cust_no := NULL;
-- RETURN FALSE;
END IF;

IF nvl(l_txn_cust_no, 'X') <> nvl(l_cust_no, 'Y') THEN


dbg('RT',
'Customer No. for the Negotiation_Ref_No :' ||
p_ty_retailtlr_upd.negotiation_ref_no || ' is ' ||
l_cust_no);
dbg('RT',
'Customer No. for the transaction account is :' ||
l_txn_cust_no);
ovpkss.pr_appendtbl('DE-NEG-001', NULL);
RETURN FALSE;
END IF;

--4903 changes starts


IF gwpks_util.pkg_func IN ('1408', '1401', '8207') THEN
IF nvl(p_ty_retailtlr_upd.txn_ccy, 'X') <> nvl(l_sell_ccy, 'Y') THEN
dbg('RT',
'Transaction currency for the Negotiation_Ref_No : ' ||
p_ty_retailtlr_upd.negotiation_ref_no || ' is ' ||
l_sell_ccy);
ovpkss.pr_appendtbl('DE-NEG-002', NULL);
RETURN FALSE;
END IF;

IF nvl(p_ty_retailtlr_upd.ofs_ccy, 'X') <> nvl(l_buy_ccy, 'Y') THEN


dbg('RT',
'GL currency for the Negotiation_Ref_No :' ||
p_ty_retailtlr_upd.negotiation_ref_no || ' is ' ||
l_buy_ccy);
ovpkss.pr_appendtbl('DE-NEG-003', NULL);
RETURN FALSE;
END IF;

ELSIF gwpks_util.pkg_func IN ('1008', '1001', '8206') THEN


IF nvl(p_ty_retailtlr_upd.txn_ccy, 'X') <> nvl(l_buy_ccy, 'Y') THEN
dbg('RT',
'Transaction currency for the Negotiation_Ref_No : ' ||
p_ty_retailtlr_upd.negotiation_ref_no || ' is ' ||
l_buy_ccy);
ovpkss.pr_appendtbl('DE-NEG-009', NULL);
RETURN FALSE;
END IF;

IF nvl(p_ty_retailtlr_upd.ofs_ccy, 'X') <> nvl(l_sell_ccy, 'Y') THEN


dbg('RT',
'GL currency for the Negotiation_Ref_No :' ||
p_ty_retailtlr_upd.negotiation_ref_no || ' is ' ||
l_sell_ccy);
ovpkss.pr_appendtbl('DE-NEG-010', NULL);
RETURN FALSE;
END IF;
END IF;
--4903 changes ends
--4894 start
\* IF NVL(L_SELL_CCY, 'X') <> NVL(L_DEAL_CCY, 'Y') THEN
DBG('RT',
'Account currency not same as the deal currency for the
Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO ||
' deal currency : ' || L_DEAL_CCY);
OVPKSS.PR_APPENDTBL('DE-NEG-007', NULL);
RETURN FALSE;
END IF;*\
--4894 end
IF (l_current_util IS NULL) OR (l_current_util = 0) THEN
--4903 changes starts
--IF NVL(P_TY_RETAILTLR_UPD.TXN_AMOUNT, 0) > NVL(L_DEAL_AMT, 0) THEN
IF nvl(l_txn_amt, 0) > nvl(l_deal_amt, 0) THEN
--4903 changes ends
dbg('RT',
'Transaction amount ' || l_txn_amt ||
'should be within the deal amount for the Negotiation_Ref_No : '
||
p_ty_retailtlr_upd.negotiation_ref_no ||
', deal amount : ' || l_deal_amt);
ovpkss.pr_appendtbl('DE-NEG-004', NULL);
RETURN FALSE;
END IF;
ELSIF nvl(l_current_util, 0) >= nvl(l_deal_amt, 0) THEN
dbg('RT',
'Deal amount is completely utilised for the Negotiation_Ref_No : '
||
p_ty_retailtlr_upd.negotiation_ref_no || ', deal amount : ' ||
l_deal_amt || ', Utilised amount : ' || l_current_util);
ovpkss.pr_appendtbl('DE-NEG-005', NULL);
RETURN FALSE;
--4903 changes starts
\*ELSIF NVL(P_TY_RETAILTLR_UPD.TXN_AMOUNT, 0) >
(NVL(L_DEAL_AMT, 0) - NVL(l_current_util, 0)) THEN*\
ELSIF nvl(l_txn_amt, 0) >
(nvl(l_deal_amt, 0) - nvl(l_current_util, 0)) THEN
--4903 changes starts
dbg('RT',
'Transaction amount ' || l_txn_amt ||
'should be within the remaining deal amount for the
Negotiation_Ref_No : ' ||
p_ty_retailtlr_upd.negotiation_ref_no || ', deal amount : ' ||
l_deal_amt || ', Utilised amount : ' || l_util_amt);
ovpkss.pr_appendtbl('DE-NEG-006', NULL);
RETURN FALSE;
END IF;*/
--T24 Special Deal Phase 2 changes ends
END IF;
--4903 changes starts
/*ELSE
-- Get the deal details for the input deal number
BEGIN
SELECT t.customer_account,
t.buy_currency,
t.sell_currency,
t.deal_currency,
t.deal_expiry_date,
t.deal_amount
INTO l_acc,
l_buy_ccy,
l_sell_ccy,
l_deal_ccy,
l_val_date,
l_deal_amt
FROM sttm_cust_deal_details t
WHERE t.internal_deal_ref_no =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
and t.auth_stat = 'A'
and t.record_stat = 'O';

ovpkss.pr_appendtbl('DL-NEG-013', NULL);
RETURN FALSE;

EXCEPTION
WHEN OTHERS THEN
dbg('P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO; : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' ERRMSG : ' ||
SQLERRM);
dbg('Deal No. not available in T24 list for region other than UAE,
Hence Valid');
END;
END IF;*/
--4903 changes ends
END IF;

-- Misc customer debit


--4903 changes starts
/*IF GWPKS_UTIL.PKG_FUNC IN ('1008') OR
UPPER(P_TY_RETAILTLR_UPD.PRODUCT_CODE) = 'MSCD' THEN
DBG('RT',
'p_ty_retailtlr_upd.Negotiation_Ref_No' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO);

-- Allow nego deal validation only for UAE region


--4903 changes starts
\*BEGIN
select PARAM_VAL
into l_country_code
from cstb_param
where param_name = 'COUNTRY_CODE';
EXCEPTION
WHEN OTHERS THEN
l_country_code := NULL;
END;

IF l_country_code IS NOT NULL AND l_country_code = 'AE' THEN*\


--4903 changes ends
IF P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO IS NOT NULL THEN
BEGIN
SELECT T.CUSTOMER_ACCOUNT,
T.BUY_CURRENCY,
T.SELL_CURRENCY,
T.DEAL_CURRENCY,
T.DEAL_EXPIRY_DATE,
T.DEAL_AMOUNT,
--4903 changes starts
T.Tot_Utilised_Amount
--4903 changes ends
INTO L_ACC,
L_BUY_CCY,
L_SELL_CCY,
L_DEAL_CCY,
L_VAL_DATE,
L_DEAL_AMT,
--4903 changes starts
l_current_util
--4903 changes ends
FROM STTM_CUST_DEAL_DETAILS T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
AND T.AUTH_STAT = 'A'
AND T.RECORD_STAT = 'O';
EXCEPTION
WHEN OTHERS THEN
DBG('RT',
'p_ty_retailtlr_upd.Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' : ' || SQLERRM);
OVPKSS.PR_APPENDTBL('DL-NEG-012', NULL);
RETURN FALSE;
END;

BEGIN
SELECT SUM(T.UTILIZED_AMOUNT)
INTO L_UTIL_AMT
FROM STTM_CUST_DEAL_DETAILS_MULTI T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO;
EXCEPTION
WHEN OTHERS THEN
L_UTIL_AMT := 0;
END;

-- Check if deal date or value date in any of the external


transactions utilising the deal,
-- is greater than application date

\* SELECT COUNT(T.VALUE_DATE)
INTO L_VALUE_DT_CNT
FROM STTM_CUST_DEAL_DETAILS_MULTI T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
AND T.VALUE_DATE > GLOBAL.APPLICATION_DATE;*\

\* IF (L_VAL_DATE < GLOBAL.APPLICATION_DATE) AND (L_UTIL_AMT >=


L_DEAL_AMT) --OR L_VALUE_DT_CNT > 0
THEN
DBG('RT',
'Deal expiry date less than application date for
Negotiation_Ref_No :' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ', Deal Date: ' ||
L_VAL_DATE);
OVPKSS.PR_APPENDTBL('DE-NEG-050', NULL);
RETURN FALSE;
END IF;*\

-- check if customer of deal account and customer of transaction


account are same

IF NOT FN_GET_DEAL_CUSTOMER(P_TY_RETAILTLR_UPD.TXN_ACC,
P_TY_RETAILTLR_UPD.TXN_CCY,
L_TXN_CUST_NO) THEN

DBG('Failed in fn_get_deal_customer');
L_TXN_CUST_NO := NULL;
--RETURN FALSE;
END IF;

IF NOT FN_GET_DEAL_CUSTOMER(L_ACC, L_DEAL_CCY, L_CUST_NO) THEN


DBG('Failed in fn_get_deal_customer');
L_CUST_NO := NULL;
--RETURN FALSE;
END IF;

IF NVL(L_TXN_CUST_NO, 'X') <> NVl(L_CUST_NO, 'Y') THEN


DBG('RT',
'Customer No. for the Negotiation_Ref_No :' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' is ' ||
L_CUST_NO);
DBG('RT',
'Customer No. for the transaction account is :' ||
L_TXN_CUST_NO);
OVPKSS.PR_APPENDTBL('DE-NEG-008', NULL);
RETURN FALSE;
END IF;

IF NVL(P_TY_RETAILTLR_UPD.TXN_CCY, 'X') <> NVL(L_BUY_CCY, 'Y') THEN


DBG('RT',
'Transaction currency for the Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' is ' ||
L_BUY_CCY);
OVPKSS.PR_APPENDTBL('DE-NEG-009', NULL);
RETURN FALSE;
END IF;

IF NVL(P_TY_RETAILTLR_UPD.OFS_CCY, 'X') <> NVL(L_SELL_CCY, 'Y')


THEN
DBG('RT',
'GL currency for the Negotiation_Ref_No :' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' is ' ||
L_SELL_CCY);
OVPKSS.PR_APPENDTBL('DE-NEG-010', NULL);
RETURN FALSE;
END IF;
----4894 start
\* IF NVL(L_BUY_CCY, 'X') <> NVL(L_DEAL_CCY, 'Y') THEN
DBG('RT',
'Account currency not same as the deal currency for the
Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO ||
' deal currency : ' || L_DEAL_CCY);
OVPKSS.PR_APPENDTBL('DE-NEG-011', NULL);
RETURN FALSE;
END IF;*\
--4894 end
IF (L_UTIL_AMT IS NULL) OR (L_UTIL_AMT = 0) THEN
IF NVL(P_TY_RETAILTLR_UPD.TXN_AMOUNT, 0) > NVL(L_DEAL_AMT, 0)
THEN
DBG('RT',
'Transaction amount should be within the deal amount for
the Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO ||
', deal amount : ' || L_DEAL_AMT);
OVPKSS.PR_APPENDTBL('DE-NEG-012', NULL);
RETURN FALSE;
END IF;
ELSIF NVL(L_UTIL_AMT, 0) >= NVL(L_DEAL_AMT, 0) THEN
DBG('RT',
'Deal amount is completely utilised for the
Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ', deal amount : '
||
L_DEAL_AMT || ', Utilised amount : ' || L_UTIL_AMT);
OVPKSS.PR_APPENDTBL('DE-NEG-013', NULL);
RETURN FALSE;
ELSIF NVL(P_TY_RETAILTLR_UPD.TXN_AMOUNT, 0) >
(NVL(L_DEAL_AMT, 0) - NVL(L_UTIL_AMT, 0)) THEN
DBG('RT',
'Transaction amount should be within the remaining deal
amount for the Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ', deal amount : '
||
L_DEAL_AMT || ', Utilised amount : ' || L_UTIL_AMT);
OVPKSS.PR_APPENDTBL('DE-NEG-014', NULL);
RETURN FALSE;
END IF;
END IF;
--4903 changes starts
\*ELSE
-- Get the deal details for the input deal number
BEGIN
SELECT t.customer_account,
t.buy_currency,
t.sell_currency,
t.deal_currency,
t.deal_expiry_date,
t.deal_amount
INTO l_acc,
l_buy_ccy,
l_sell_ccy,
l_deal_ccy,
l_val_date,
l_deal_amt
FROM sttm_cust_deal_details t
WHERE t.internal_deal_ref_no =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
and t.auth_stat = 'A'
and t.record_stat = 'O';

ovpkss.pr_appendtbl('DL-NEG-013', NULL);
RETURN FALSE;

EXCEPTION
WHEN OTHERS THEN
dbg('P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO; : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' ERRMSG : ' ||
SQLERRM);
dbg('Deal No. not available in T24 list for region other than
UAE, Hence Valid');
END;
END IF;*\
--4903 changes ends
END IF;*/
--4903 changes ends;
-- Cash Deposit
--4903 changes starts
/*IF GWPKS_UTIL.PKG_FUNC IN ('1401') OR
UPPER(P_TY_RETAILTLR_UPD.PRODUCT_CODE) = 'CHDP' THEN
DBG('RT',
'p_ty_retailtlr_upd.Negotiation_Ref_No' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO);

-- Allow nego deal validation only for UAE region


--4903 changes starts
\*BEGIN
select PARAM_VAL
into l_country_code
from cstb_param
where param_name = 'COUNTRY_CODE';
EXCEPTION
WHEN OTHERS THEN
l_country_code := NULL;
END;

IF l_country_code IS NOT NULL AND l_country_code = 'AE' THEN*\


--4903 changes ends
IF P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO IS NOT NULL THEN
BEGIN
SELECT T.CUSTOMER_ACCOUNT,
T.BUY_CURRENCY,
T.SELL_CURRENCY,
T.DEAL_CURRENCY,
T.DEAL_EXPIRY_DATE,
T.DEAL_AMOUNT
INTO L_ACC,
L_BUY_CCY,
L_SELL_CCY,
L_DEAL_CCY,
L_VAL_DATE,
L_DEAL_AMT
FROM STTM_CUST_DEAL_DETAILS T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
AND T.AUTH_STAT = 'A'
AND T.RECORD_STAT = 'O';
EXCEPTION
WHEN OTHERS THEN
DBG('RT',
'p_ty_retailtlr_upd.Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' : ' || SQLERRM);
OVPKSS.PR_APPENDTBL('DL-NEG-012', NULL);
RETURN FALSE;
END;

BEGIN
SELECT SUM(T.UTILIZED_AMOUNT)
INTO L_UTIL_AMT
FROM STTM_CUST_DEAL_DETAILS_MULTI T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO;
EXCEPTION
WHEN OTHERS THEN
L_UTIL_AMT := 0;
END;

-- Check if deal date or value date in any of the external


transactions utilising the deal,
-- is greater than application date

\* SELECT COUNT(T.VALUE_DATE)
INTO L_VALUE_DT_CNT
FROM STTM_CUST_DEAL_DETAILS_MULTI T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
AND T.VALUE_DATE > GLOBAL.APPLICATION_DATE;*\

\* IF (L_VAL_DATE < GLOBAL.APPLICATION_DATE) AND (L_UTIL_AMT >=


L_DEAL_AMT) --OR L_VALUE_DT_CNT > 0
THEN
DBG('RT',
'Deal expiry date less than application date for
Negotiation_Ref_No :' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ', Deal Date: ' ||
L_VAL_DATE);
OVPKSS.PR_APPENDTBL('DE-NEG-050', NULL);
RETURN FALSE;
END IF;*\

-- check if customer of deal account and customer of transaction


account are same

IF NOT FN_GET_DEAL_CUSTOMER(P_TY_RETAILTLR_UPD.TXN_ACC,
P_TY_RETAILTLR_UPD.TXN_CCY,
L_TXN_CUST_NO) THEN

DBG('Failed in fn_get_deal_customer');
L_TXN_CUST_NO := NULL;
--RETURN FALSE;
END IF;

IF NOT FN_GET_DEAL_CUSTOMER(L_ACC, L_DEAL_CCY, L_CUST_NO) THEN


DBG('Failed in fn_get_deal_customer');
L_CUST_NO := NULL;
--RETURN FALSE;
END IF;

IF NVL(L_TXN_CUST_NO, 'X') <> NVL(L_CUST_NO, 'Y') THEN


DBG('RT',
'Customer No. for the Negotiation_Ref_No :' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' is ' ||
L_CUST_NO);
DBG('RT',
'Customer No. for the transaction account is :' ||
L_TXN_CUST_NO);
OVPKSS.PR_APPENDTBL('DE-NEG-015', NULL);
RETURN FALSE;
END IF;

IF NVL(P_TY_RETAILTLR_UPD.TXN_CCY, 'X') <> NVL(L_SELL_CCY, 'Y')


THEN
DBG('RT',
'Transaction currency for the Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' is ' ||
L_SELL_CCY);
OVPKSS.PR_APPENDTBL('DE-NEG-016', NULL);
RETURN FALSE;
END IF;

IF NVL(P_TY_RETAILTLR_UPD.OFS_CCY, 'X') <> NVL(L_BUY_CCY, 'Y') THEN


DBG('RT',
'Offset currency for the Negotiation_Ref_No :' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' is ' ||
L_BUY_CCY);
OVPKSS.PR_APPENDTBL('DE-NEG-017', NULL);
RETURN FALSE;
END IF;
--4894 start
\* IF NVL(L_SELL_CCY, 'X') <> NVL(L_DEAL_CCY, 'Y') THEN
DBG('RT',
'Account currency not same as the deal currency for the
Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO ||
' deal currency : ' || L_DEAL_CCY);
OVPKSS.PR_APPENDTBL('DE-NEG-018', NULL);
RETURN FALSE;
END IF;*\
--4894 end
IF (L_UTIL_AMT IS NULL) OR (L_UTIL_AMT = 0) THEN
IF NVL(P_TY_RETAILTLR_UPD.TXN_AMOUNT, 0) > NVL(L_DEAL_AMT, 0)
THEN
DBG('RT',
'Transaction amount should be within the deal amount for
the Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO ||
', deal amount : ' || L_DEAL_AMT);
OVPKSS.PR_APPENDTBL('DE-NEG-019', NULL);
RETURN FALSE;
END IF;
ELSIF NVL(L_UTIL_AMT, 0) >= NVL(L_DEAL_AMT, 0) THEN
DBG('RT',
'Deal amount is completely utilised for the
Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ', deal amount : '
||
L_DEAL_AMT || ', Utilised amount : ' || L_UTIL_AMT);
OVPKSS.PR_APPENDTBL('DE-NEG-020', NULL);
RETURN FALSE;
ELSIF NVL(P_TY_RETAILTLR_UPD.TXN_AMOUNT, 0) >
(NVL(L_DEAL_AMT, 0) - NVL(L_UTIL_AMT, 0)) THEN
DBG('RT',
'Transaction amount should be within the remaining deal
amount for the Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ', deal amount : '
||
L_DEAL_AMT || ', Utilised amount : ' || L_UTIL_AMT);
OVPKSS.PR_APPENDTBL('DE-NEG-021', NULL);
RETURN FALSE;
END IF;
END IF;
--4903 changes starts
\*ELSE
-- Get the deal details for the input deal number
BEGIN
SELECT t.customer_account,
t.buy_currency,
t.sell_currency,
t.deal_currency,
t.deal_expiry_date,
t.deal_amount
INTO l_acc,
l_buy_ccy,
l_sell_ccy,
l_deal_ccy,
l_val_date,
l_deal_amt
FROM sttm_cust_deal_details t
WHERE t.internal_deal_ref_no =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
and t.auth_stat = 'A'
and t.record_stat = 'O';

ovpkss.pr_appendtbl('DL-NEG-013', NULL);
RETURN FALSE;

EXCEPTION
WHEN OTHERS THEN
dbg('P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO; : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' ERRMSG : ' ||
SQLERRM);
dbg('Deal No. not available in T24 list for region other than
UAE, Hence Valid');
END;
END IF;*\
--4903 changes ends
END IF;*/
--4903 changes ends
-- Cash Withdrawal
--4903 changes starts
/*IF GWPKS_UTIL.PKG_FUNC IN ('1001') OR
UPPER(P_TY_RETAILTLR_UPD.PRODUCT_CODE) = 'CHWL' THEN
DBG('RT',
'p_ty_retailtlr_upd.Negotiation_Ref_No' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO);

-- Allow nego deal validation only for UAE region


--4903 changes starts
\*BEGIN
select PARAM_VAL
into l_country_code
from cstb_param
where param_name = 'COUNTRY_CODE';
EXCEPTION
WHEN OTHERS THEN
l_country_code := NULL;
END;

IF l_country_code IS NOT NULL AND l_country_code = 'AE' THEN*\


--4903 changes ends
IF P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO IS NOT NULL THEN
BEGIN
SELECT T.CUSTOMER_ACCOUNT,
T.BUY_CURRENCY,
T.SELL_CURRENCY,
T.DEAL_CURRENCY,
T.DEAL_EXPIRY_DATE,
T.DEAL_AMOUNT
INTO L_ACC,
L_BUY_CCY,
L_SELL_CCY,
L_DEAL_CCY,
L_VAL_DATE,
L_DEAL_AMT
FROM STTM_CUST_DEAL_DETAILS T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
AND T.AUTH_STAT = 'A'
AND T.RECORD_STAT = 'O';
EXCEPTION
WHEN OTHERS THEN
DBG('RT',
'p_ty_retailtlr_upd.Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' : ' || SQLERRM);
OVPKSS.PR_APPENDTBL('DL-NEG-012', NULL);
RETURN FALSE;
END;

BEGIN
SELECT SUM(T.UTILIZED_AMOUNT)
INTO L_UTIL_AMT
FROM STTM_CUST_DEAL_DETAILS_MULTI T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO;
EXCEPTION
WHEN OTHERS THEN
L_UTIL_AMT := 0;
END;

-- Check if deal date or value date in any of the external


transactions utilising the deal,
-- is greater than application date
\*
SELECT COUNT(T.VALUE_DATE)
INTO L_VALUE_DT_CNT
FROM STTM_CUST_DEAL_DETAILS_MULTI T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
AND T.VALUE_DATE > GLOBAL.APPLICATION_DATE;*\

\*
IF (L_VAL_DATE < GLOBAL.APPLICATION_DATE) AND (L_UTIL_AMT >=
L_DEAL_AMT) --OR L_VALUE_DT_CNT > 0
THEN
DBG('RT',
'Deal expiry date less than application date for
Negotiation_Ref_No :' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ', Deal Date: ' ||
L_VAL_DATE);
OVPKSS.PR_APPENDTBL('DE-NEG-050', NULL);
RETURN FALSE;
END IF;*\

-- check if customer of deal account and customer of transaction


account are same
IF NOT FN_GET_DEAL_CUSTOMER(P_TY_RETAILTLR_UPD.TXN_ACC,
P_TY_RETAILTLR_UPD.TXN_CCY,
L_TXN_CUST_NO) THEN

DBG('Failed in fn_get_deal_customer');
L_TXN_CUST_NO := NULL;
--RETURN FALSE;
END IF;

IF NOT FN_GET_DEAL_CUSTOMER(L_ACC, L_DEAL_CCY, L_CUST_NO) THEN


DBG('Failed in fn_get_deal_customer');
L_CUST_NO := NULL;
--RETURN FALSE;
END IF;

IF NVL(L_TXN_CUST_NO, 'X') <> NVL(L_CUST_NO, 'Y') THEN


DBG('RT',
'Customer No. for the Negotiation_Ref_No :' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' is ' ||
L_CUST_NO);
DBG('RT',
'Customer No. for the transaction account is :' ||
L_TXN_CUST_NO);
OVPKSS.PR_APPENDTBL('DE-NEG-022', NULL);
RETURN FALSE;
END IF;

IF NVL(P_TY_RETAILTLR_UPD.TXN_CCY, 'X') <> NVL(L_BUY_CCY, 'Y') THEN


DBG('RT',
'Transaction currency for the Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' is ' ||
L_BUY_CCY);
OVPKSS.PR_APPENDTBL('DE-NEG-023', NULL);
RETURN FALSE;
END IF;

IF NVL(P_TY_RETAILTLR_UPD.OFS_CCY, 'X') <> NVL(L_SELL_CCY, 'Y')


THEN
DBG('RT',
'Offset currency for the Negotiation_Ref_No :' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' is ' ||
L_SELL_CCY);
OVPKSS.PR_APPENDTBL('DE-NEG-024', NULL);
RETURN FALSE;
END IF;
--4894 start
\* IF NVL(L_BUY_CCY, 'X') <> NVL(L_DEAL_CCY, 'Y') THEN
DBG('RT',
'Account currency not same as the deal currency for the
Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO ||
' deal currency : ' || L_DEAL_CCY);
OVPKSS.PR_APPENDTBL('DE-NEG-025', NULL);
RETURN FALSE;
END IF;*\
--4894 end
IF (L_UTIL_AMT IS NULL) OR (L_UTIL_AMT = 0) THEN
IF NVL(P_TY_RETAILTLR_UPD.TXN_AMOUNT, 0) > NVL(L_DEAL_AMT, 0)
THEN
DBG('RT',
'Transaction amount should be within the deal amount for
the Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO ||
', deal amount : ' || L_DEAL_AMT);
OVPKSS.PR_APPENDTBL('DE-NEG-026', NULL);
RETURN FALSE;
END IF;
ELSIF NVL(L_UTIL_AMT, 0) >= NVL(L_DEAL_AMT, 0) THEN
DBG('RT',
'Deal amount is completely utilised for the
Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ', deal amount : '
||
L_DEAL_AMT || ', Utilised amount : ' || L_UTIL_AMT);
OVPKSS.PR_APPENDTBL('DE-NEG-027', NULL);
RETURN FALSE;
ELSIF NVL(P_TY_RETAILTLR_UPD.TXN_AMOUNT, 0) >
(NVL(L_DEAL_AMT, 0) - NVL(L_UTIL_AMT, 0)) THEN
DBG('RT',
'Transaction amount should be within the remaining deal
amount for the Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ', deal amount : '
||
L_DEAL_AMT || ', Utilised amount : ' || L_UTIL_AMT);
OVPKSS.PR_APPENDTBL('DE-NEG-028', NULL);
RETURN FALSE;
END IF;
END IF;
--4903 changes starts
\*ELSE
-- Get the deal details for the input deal number
BEGIN
SELECT t.customer_account,
t.buy_currency,
t.sell_currency,
t.deal_currency,
t.deal_expiry_date,
t.deal_amount
INTO l_acc,
l_buy_ccy,
l_sell_ccy,
l_deal_ccy,
l_val_date,
l_deal_amt
FROM sttm_cust_deal_details t
WHERE t.internal_deal_ref_no =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
and t.auth_stat = 'A'
and t.record_stat = 'O';

ovpkss.pr_appendtbl('DL-NEG-013', NULL);
RETURN FALSE;

EXCEPTION
WHEN OTHERS THEN
dbg('P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO; : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' ERRMSG : ' ||
SQLERRM);
dbg('Deal No. not available in T24 list for region other than
UAE, Hence Valid');
END;
END IF;*\
--4903 changes ends
END IF;*/
--4903 changes ends

-- FX Purchase
--4903 changes starts
/*IF GWPKS_UTIL.PKG_FUNC IN ('8207') OR
UPPER(P_TY_RETAILTLR_UPD.PRODUCT_CODE) = 'FXPA' THEN
DBG('RT',
'p_ty_retailtlr_upd.Negotiation_Ref_No' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO);

-- Allow nego deal validation only for UAE region


--4903 changes starts
\*BEGIN
select PARAM_VAL
into l_country_code
from cstb_param
where param_name = 'COUNTRY_CODE';
EXCEPTION
WHEN OTHERS THEN
l_country_code := NULL;
END;

IF l_country_code IS NOT NULL AND l_country_code = 'AE' THEN*\


--4903 changes ends
IF P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO IS NOT NULL THEN
BEGIN
SELECT T.CUSTOMER_ACCOUNT,
T.BUY_CURRENCY,
T.SELL_CURRENCY,
T.DEAL_CURRENCY,
T.DEAL_EXPIRY_DATE,
T.DEAL_AMOUNT
INTO L_ACC,
L_BUY_CCY,
L_SELL_CCY,
L_DEAL_CCY,
L_VAL_DATE,
L_DEAL_AMT
FROM STTM_CUST_DEAL_DETAILS T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
AND T.AUTH_STAT = 'A'
AND T.RECORD_STAT = 'O';
EXCEPTION
WHEN OTHERS THEN
DBG('RT',
'p_ty_retailtlr_upd.Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' : ' || SQLERRM);
OVPKSS.PR_APPENDTBL('DL-NEG-012', NULL);
RETURN FALSE;
END;

BEGIN
SELECT SUM(T.UTILIZED_AMOUNT)
INTO L_UTIL_AMT
FROM STTM_CUST_DEAL_DETAILS_MULTI T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO;
EXCEPTION
WHEN OTHERS THEN
L_UTIL_AMT := 0;
END;

-- Check if deal date or value date in any of the external


transactions utilising the deal,
-- is greater than application date
\*
SELECT COUNT(T.VALUE_DATE)
INTO L_VALUE_DT_CNT
FROM STTM_CUST_DEAL_DETAILS_MULTI T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
AND T.VALUE_DATE > GLOBAL.APPLICATION_DATE;*\

\* IF (L_VAL_DATE < GLOBAL.APPLICATION_DATE) AND (L_UTIL_AMT >=


L_DEAL_AMT) --OR L_VALUE_DT_CNT > 0
THEN
DBG('RT',
'Deal expiry date less than application date for
Negotiation_Ref_No :' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ', Deal Date: ' ||
L_VAL_DATE);
OVPKSS.PR_APPENDTBL('DE-NEG-050', NULL);
RETURN FALSE;
END IF;*\

-- check if customer of deal account and customer of transaction


account are same
IF NOT FN_GET_DEAL_CUSTOMER(P_TY_RETAILTLR_UPD.TXN_ACC,
P_TY_RETAILTLR_UPD.TXN_CCY,
L_TXN_CUST_NO) THEN

DBG('Failed in fn_get_deal_customer');
L_TXN_CUST_NO := NULL;
-- RETURN FALSE;
END IF;

IF NOT FN_GET_DEAL_CUSTOMER(L_ACC, L_DEAL_CCY, L_CUST_NO) THEN


DBG('Failed in fn_get_deal_customer');
L_CUST_NO := NULL;
-- RETURN FALSE;
END IF;

IF NVL(L_TXN_CUST_NO, 'X') <> NVL(L_CUST_NO, 'Y') THEN


DBG('RT',
'Customer No. for the Negotiation_Ref_No :' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' is ' ||
L_CUST_NO);
DBG('RT',
'Customer No. for the transaction account is :' ||
L_TXN_CUST_NO);
OVPKSS.PR_APPENDTBL('DE-NEG-029', NULL);
RETURN FALSE;
END IF;

IF NVL(P_TY_RETAILTLR_UPD.TXN_CCY, 'X') <> NVL(L_SELL_CCY, 'Y')


THEN
DBG('RT',
'Transaction currency for the Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' is ' ||
L_SELL_CCY);
OVPKSS.PR_APPENDTBL('DE-NEG-030', NULL);
RETURN FALSE;
END IF;

IF NVL(P_TY_RETAILTLR_UPD.OFS_CCY, 'X') <> NVL(L_BUY_CCY, 'Y') THEN


DBG('RT',
'Offset currency for the Negotiation_Ref_No :' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' is ' ||
L_BUY_CCY);
OVPKSS.PR_APPENDTBL('DE-NEG-031', NULL);
RETURN FALSE;
END IF;
--4894 start
\* IF NVL(L_SELL_CCY, 'X') <> NVL(L_DEAL_CCY, 'Y') THEN
DBG('RT',
'Account currency not same as the deal currency for the
Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO ||
' deal currency : ' || L_DEAL_CCY);
OVPKSS.PR_APPENDTBL('DE-NEG-032', NULL);
RETURN FALSE;
END IF;*\
--4894 end
IF (L_UTIL_AMT IS NULL) OR (L_UTIL_AMT = 0) THEN
IF NVL(P_TY_RETAILTLR_UPD.TXN_AMOUNT, 0) > NVL(L_DEAL_AMT, 0)
THEN
DBG('RT',
'Transaction amount should be within the deal amount for
the Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO ||
', deal amount : ' || L_DEAL_AMT);
OVPKSS.PR_APPENDTBL('DE-NEG-033', NULL);
RETURN FALSE;
END IF;
ELSIF NVL(L_UTIL_AMT, 0) >= NVL(L_DEAL_AMT, 0) THEN
DBG('RT',
'Deal amount is completely utilised for the
Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ', deal amount : '
||
L_DEAL_AMT || ', Utilised amount : ' || L_UTIL_AMT);
OVPKSS.PR_APPENDTBL('DE-NEG-034', NULL);
RETURN FALSE;
ELSIF NVL(P_TY_RETAILTLR_UPD.TXN_AMOUNT, 0) >
(NVL(L_DEAL_AMT, 0) - NVL(L_UTIL_AMT, 0)) THEN
DBG('RT',
'Transaction amount should be within the remaining deal
amount for the Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ', deal amount : '
||
L_DEAL_AMT || ', Utilised amount : ' || L_UTIL_AMT);
OVPKSS.PR_APPENDTBL('DE-NEG-035', NULL);
RETURN FALSE;
END IF;
END IF;
--4903 changes starts
\*ELSE
-- Get the deal details for the input deal number
BEGIN
SELECT t.customer_account,
t.buy_currency,
t.sell_currency,
t.deal_currency,
t.deal_expiry_date,
t.deal_amount
INTO l_acc,
l_buy_ccy,
l_sell_ccy,
l_deal_ccy,
l_val_date,
l_deal_amt
FROM sttm_cust_deal_details t
WHERE t.internal_deal_ref_no =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
and t.auth_stat = 'A'
and t.record_stat = 'O';

ovpkss.pr_appendtbl('DL-NEG-013', NULL);
RETURN FALSE;

EXCEPTION
WHEN OTHERS THEN
dbg('P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO; : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' ERRMSG : ' ||
SQLERRM);
dbg('Deal No. not available in T24 list for region other than
UAE, Hence Valid');
END;
END IF;*\
--4903 changes ends
END IF;*/
--4903 changes ends

-- FX Sale
--4903 changes starts
/*IF GWPKS_UTIL.PKG_FUNC IN ('8206') OR
UPPER(P_TY_RETAILTLR_UPD.PRODUCT_CODE) = 'FXSA' THEN
DBG('RT',
'p_ty_retailtlr_upd.Negotiation_Ref_No' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO);

-- Allow nego deal validation only for UAE region


--4903 changes starts
\*BEGIN
select PARAM_VAL
into l_country_code
from cstb_param
where param_name = 'COUNTRY_CODE';
EXCEPTION
WHEN OTHERS THEN
l_country_code := NULL;
END;

IF l_country_code IS NOT NULL AND l_country_code = 'AE' THEN*\


--4903 changes ends
IF P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO IS NOT NULL THEN
BEGIN
SELECT T.CUSTOMER_ACCOUNT,
T.BUY_CURRENCY,
T.SELL_CURRENCY,
T.DEAL_CURRENCY,
T.DEAL_EXPIRY_DATE,
T.DEAL_AMOUNT
INTO L_ACC,
L_BUY_CCY,
L_SELL_CCY,
L_DEAL_CCY,
L_VAL_DATE,
L_DEAL_AMT
FROM STTM_CUST_DEAL_DETAILS T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
AND T.AUTH_STAT = 'A'
AND T.RECORD_STAT = 'O';
EXCEPTION
WHEN OTHERS THEN
DBG('RT',
'p_ty_retailtlr_upd.Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' : ' || SQLERRM);
OVPKSS.PR_APPENDTBL('DL-NEG-012', NULL);
RETURN FALSE;
END;

BEGIN
SELECT SUM(T.UTILIZED_AMOUNT)
INTO L_UTIL_AMT
FROM STTM_CUST_DEAL_DETAILS_MULTI T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO;
EXCEPTION
WHEN OTHERS THEN
L_UTIL_AMT := 0;
END;

-- Check if deal date or value date in any of the external


transactions utilising the deal,
-- is greater than application date
\*
SELECT COUNT(T.VALUE_DATE)
INTO L_VALUE_DT_CNT
FROM STTM_CUST_DEAL_DETAILS_MULTI T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
AND T.VALUE_DATE > GLOBAL.APPLICATION_DATE;*\

\* IF (L_VAL_DATE < GLOBAL.APPLICATION_DATE) AND (L_UTIL_AMT >=


L_DEAL_AMT) -- OR L_VALUE_DT_CNT > 0
THEN
DBG('RT',
'Deal expiry date less than application date for
Negotiation_Ref_No :' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ', Deal Date: ' ||
L_VAL_DATE);
OVPKSS.PR_APPENDTBL('DE-NEG-050', NULL);
RETURN FALSE;
END IF;*\

-- check if customer of deal account and customer of transaction


account are same

IF NOT FN_GET_DEAL_CUSTOMER(P_TY_RETAILTLR_UPD.TXN_ACC,
P_TY_RETAILTLR_UPD.TXN_CCY,
L_TXN_CUST_NO) THEN

DBG('Failed in fn_get_deal_customer');
L_TXN_CUST_NO := NULL;
--RETURN FALSE;
END IF;

IF NOT FN_GET_DEAL_CUSTOMER(L_ACC, L_DEAL_CCY, L_CUST_NO) THEN


DBG('Failed in fn_get_deal_customer');
L_CUST_NO := NULL;
-- RETURN FALSE;
END IF;

IF NVL(L_TXN_CUST_NO, 'X') <> NVL(L_CUST_NO, 'Y') THEN


DBG('RT',
'Customer No. for the Negotiation_Ref_No :' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' is ' ||
L_CUST_NO);
DBG('RT',
'Customer No. for the transaction account is :' ||
L_TXN_CUST_NO);
OVPKSS.PR_APPENDTBL('DE-NEG-036', NULL);
RETURN FALSE;
END IF;

IF P_TY_RETAILTLR_UPD.TXN_CCY <> L_BUY_CCY THEN


DBG('RT',
'Transaction currency for the Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' is ' ||
L_BUY_CCY);
OVPKSS.PR_APPENDTBL('DE-NEG-037', NULL);
RETURN FALSE;
END IF;

IF P_TY_RETAILTLR_UPD.OFS_CCY <> L_SELL_CCY THEN


DBG('RT',
'Offset currency for the Negotiation_Ref_No :' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' is ' ||
L_SELL_CCY);
OVPKSS.PR_APPENDTBL('DE-NEG-038', NULL);
RETURN FALSE;
END IF;
--4894 start
\* IF L_BUY_CCY <> L_DEAL_CCY THEN
DBG('RT',
'Account currency not same as the deal currency for the
Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO ||
' deal currency : ' || L_DEAL_CCY);
OVPKSS.PR_APPENDTBL('DE-NEG-039', NULL);
RETURN FALSE;
END IF;*\
--4894 end
IF (L_UTIL_AMT IS NULL) OR (L_UTIL_AMT = 0) THEN
IF NVL(P_TY_RETAILTLR_UPD.TXN_AMOUNT, 0) > NVL(L_DEAL_AMT, 0)
THEN
DBG('RT',
'Transaction amount should be within the deal amount for
the Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO ||
', deal amount : ' || L_DEAL_AMT);
OVPKSS.PR_APPENDTBL('DE-NEG-040', NULL);
RETURN FALSE;
END IF;
ELSIF NVL(L_UTIL_AMT, 0) >= NVL(L_DEAL_AMT, 0) THEN
DBG('RT',
'Deal amount is completely utilised for the
Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ', deal amount : '
||
L_DEAL_AMT || ', Utilised amount : ' || L_UTIL_AMT);
OVPKSS.PR_APPENDTBL('DE-NEG-041', NULL);
RETURN FALSE;
ELSIF NVL(P_TY_RETAILTLR_UPD.TXN_AMOUNT, 0) >
(NVL(L_DEAL_AMT, 0) - NVL(L_UTIL_AMT, 0)) THEN
DBG('RT',
'Transaction amount should be within the remaining deal
amount for the Negotiation_Ref_No : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ', deal amount : '
||
L_DEAL_AMT || ', Utilised amount : ' || L_UTIL_AMT);
OVPKSS.PR_APPENDTBL('DE-NEG-042', NULL);
RETURN FALSE;
END IF;
END IF;
--4903 changes starts
\*ELSE
-- Get the deal details for the input deal number
BEGIN
SELECT t.customer_account,
t.buy_currency,
t.sell_currency,
t.deal_currency,
t.deal_expiry_date,
t.deal_amount
INTO l_acc,
l_buy_ccy,
l_sell_ccy,
l_deal_ccy,
l_val_date,
l_deal_amt
FROM sttm_cust_deal_details t
WHERE t.internal_deal_ref_no =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
and t.auth_stat = 'A'
and t.record_stat = 'O';

ovpkss.pr_appendtbl('DL-NEG-013', NULL);
RETURN FALSE;

EXCEPTION
WHEN OTHERS THEN
dbg('P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO; : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' ERRMSG : ' ||
SQLERRM);
dbg('Deal No. not available in T24 list for region other than
UAE, Hence Valid');
END;
END IF;*\
--4903 changes ends
END IF;*/
--4903 changes ends
-- 4903 changes starts <If condition for Deal cntry>
ELSE
DBG('Not a T24 deal enabled country');
BEGIN
SELECT T.CUSTOMER_ACCOUNT,
T.BUY_CURRENCY,
T.SELL_CURRENCY,
T.DEAL_CURRENCY,
T.DEAL_EXPIRY_DATE,
T.DEAL_AMOUNT
INTO L_ACC,
L_BUY_CCY,
L_SELL_CCY,
L_DEAL_CCY,
L_VAL_DATE,
L_DEAL_AMT
FROM STTM_CUST_DEAL_DETAILS T
WHERE T.INTERNAL_DEAL_REF_NO =
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
AND T.AUTH_STAT = 'A'
AND T.RECORD_STAT = 'O';

OVPKSS.PR_APPENDTBL('DL-NEG-013', NULL);
RETURN FALSE;

EXCEPTION
WHEN OTHERS THEN
DBG('P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO; : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' ERRMSG : ' ||
SQLERRM);
DBG('Deal No. not available in T24 list for region other than UAE, Hence
Valid');
END;
END IF;
-- 4903 changes ends <If condition for Deal cntry>

DBG('Successfully finished fn_validate_nego_deal');


RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('RT', 'Failed in fn_validate_nego_deal' || SQLERRM);
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_NEGO_DEAL;
--FCUBS_11 2 0 0 0$BOMLAE_R22_10332_T24, CR 10332_T24 Special deal utilisation-
starts
FUNCTION FN_INSERT_DEAL_UTIL(P_TY_RETAILTLR_UPD IN OUT DETB_UPLOAD_RTL_TELLER
%ROWTYPE,
P_RET IN OUT NUMBER,
P_TYP_ERR IN OUT OVPKSS.TBL_ERROR,
P_SOURCE IN VARCHAR2,
P_ERR_CODE IN OUT VARCHAR2,
P_ERR_PARAM IN OUT VARCHAR2)
RETURN BOOLEAN IS

L_ERR_CODE VARCHAR2(50);
L_ERR_PARAM VARCHAR2(100);

L_DEAL_AMT STTM_CUST_DEAL_DETAILS.DEAL_AMOUNT%TYPE;
L_DEAL_STATUS STTM_CUST_DEAL_DETAILS.DEAL_STATUS%TYPE;
L_UTIL_AMT STTM_CUST_DEAL_DETAILS_MULTI.UTILIZED_AMOUNT%TYPE;
L_SERIAL_DEAL NUMBER;
--4903 changes starts
L_DEAL_CCY CYTM_RATES.CCY1%TYPE;
L_TXN_AMT DETB_RTL_TELLER.TXN_AMOUNT%TYPE;
L_UPD_UTIL DETB_RTL_TELLER.TXN_AMOUNT%TYPE;
--4903 changes ends
--T24 Special Deal Phase 2 changes starts
L_DR_AC VARCHAR2(20);
L_CR_AC VARCHAR2(20);
L_DR_CCY VARCHAR2(3);
L_CR_CCY VARCHAR2(3);
L_TXN_CCY VARCHAR2(3);
L_CHECKER_ID VARCHAR2(20);
--T24 Special Deal Phase 2 changes ends
BEGIN

DBG('Inside fn_insert_deal_util..');

BEGIN
SELECT T.DEAL_STATUS,
T.DEAL_AMOUNT,
NVL(T.TOT_UTILISED_AMOUNT, 0),
T.DEAL_CURRENCY
INTO L_DEAL_STATUS, L_DEAL_AMT, L_UTIL_AMT, L_DEAL_CCY
FROM STTM_CUST_DEAL_DETAILS T
WHERE T.INTERNAL_DEAL_REF_NO = P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
AND T.AUTH_STAT = 'A'
AND T.RECORD_STAT = 'O';
EXCEPTION
WHEN OTHERS THEN
DBG('P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO || ' ERRMSG : ' ||
SQLERRM);
--4903 changes starts
P_RET := -1;
--4903 changes ends
RETURN FALSE;
END;
--4903 changes starts <taking the total utilised amount from master table>
/*BEGIN
SELECT SUM(T.UTILIZED_AMOUNT)
INTO L_UTIL_AMT
FROM STTM_CUST_DEAL_DETAILS_MULTI T
WHERE T.INTERNAL_DEAL_REF_NO = P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO;
EXCEPTION
WHEN OTHERS THEN
L_UTIL_AMT := NULL;
END;*/
--4903 changes end <taking the total utilised amount from master table>
-- Do not allow the deal to process if the status is not in (A) or (E with
partial utilisation)
-- at the time of authorisation

IF L_DEAL_STATUS IN ('P', 'F', 'C') OR


(L_DEAL_STATUS = 'E' AND L_UTIL_AMT >= L_DEAL_AMT) THEN
DBG('RT transaction cannot not be authorised; Deal cannot be utilised for
deal ref no : ' ||
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO);
OVPKSS.PR_APPENDTBL('DE-NEG-051', NULL);
--4903 changes starts
P_RET := -1;
--4903 changes ends
RETURN FALSE;
END IF;
DBG('The txn amount is ' || P_TY_RETAILTLR_UPD.TXN_AMOUNT);
DBG('The Ofs amount is ' || P_TY_RETAILTLR_UPD.OFS_AMOUNT);
IF P_SOURCE NOT IN ('FLEXBRANCH', 'FLEXCUBE', 'FLEXSWITCH') THEN
IF P_TY_RETAILTLR_UPD.TXN_AMOUNT IS NULL THEN
IF NOT CYPKSS.FN_AMT1_TO_AMT2(GLOBAL.CURRENT_BRANCH,
P_TY_RETAILTLR_UPD.OFS_CCY,
P_TY_RETAILTLR_UPD.TXN_CCY,
'STANDARD',
'M',
P_TY_RETAILTLR_UPD.OFS_AMOUNT,
'Y',
P_TY_RETAILTLR_UPD.TXN_AMOUNT,
P_TY_RETAILTLR_UPD.EXCH_RATE,
L_ERR_CODE) THEN
DBG('Failed in Cypkss.Fn_Amt1_To_Amt2 AGH ');
RETURN FALSE;
END IF;
END IF;
--PR00001872 changes Fix for FCAT Sell ccy = deal ccy starts
IF P_TY_RETAILTLR_UPD.OFS_AMOUNT IS NULL THEN
IF NOT CYPKSS.FN_AMT1_TO_AMT2(GLOBAL.CURRENT_BRANCH,
P_TY_RETAILTLR_UPD.TXN_CCY,
P_TY_RETAILTLR_UPD.OFS_CCY,
'STANDARD',
'M',
P_TY_RETAILTLR_UPD.TXN_AMOUNT,
'Y',
P_TY_RETAILTLR_UPD.OFS_AMOUNT,
P_TY_RETAILTLR_UPD.EXCH_RATE,
L_ERR_CODE) THEN
DBG('Failed in Cypkss.Fn_Amt1_To_Amt2 AGH ');
RETURN FALSE;
END IF;
END IF;
--PR00001872 changes Fix for FCAT Sell ccy = deal ccy ends
END IF;
--4903 changes starts
DBG('here to determine the deal utilisation amount based on ccy');
IF L_DEAL_CCY = P_TY_RETAILTLR_UPD.TXN_CCY THEN
DBG('deal ccy is same as txn ccy');
L_TXN_AMT := P_TY_RETAILTLR_UPD.TXN_AMOUNT;
--T24 Special Deal Phase 2 changes starts
L_TXN_CCY := P_TY_RETAILTLR_UPD.TXN_CCY;
--T24 Special Deal Phase 2 changes ends
ELSIF L_DEAL_CCY = P_TY_RETAILTLR_UPD.OFS_CCY THEN
DBG('deal ccy is equal to ofs ccy');
L_TXN_AMT := P_TY_RETAILTLR_UPD.OFS_AMOUNT;
--T24 Special Deal Phase 2 changes starts
L_TXN_CCY := P_TY_RETAILTLR_UPD.OFS_CCY;
--T24 Special Deal Phase 2 changes ends
END IF;
--5034 changes starts
/*dbg('t24 special deal...');
-- IF Cspks_Req_Global.g_Header('FUNCTIONID') in ('8206', '8207') \*and
cspks_req_global.g_header('ACTION') not in ('ENRICH' ) *\THEN
IF not
cypks.fn_amt_round(p_ty_retailtlr_upd.txn_ccy, l_txn_amt, l_txn_amt) then
dbg('failed to rounf up the amount...');
end if;
dbg('T24 special deal txn amount ' || l_txn_amt);*/
-- END IF;
--Gourab changes ends
--5034 changes ends
BEGIN
SELECT CHECKERID
INTO L_CHECKER_ID
FROM FBTB_TXNLOG_MASTER
WHERE XREFID = P_TY_RETAILTLR_UPD.XREF
AND BRANCHCODE = GLOBAL.CURRENT_BRANCH;
EXCEPTION
WHEN OTHERS THEN
DBG('Checker validation failed');
L_CHECKER_ID := NULL;
END;
IF P_SOURCE NOT IN ('FLEXBRANCH', 'FLEXCUBE', 'FLEXSWITCH') THEN
DBG('Will assing the checker for non flexcube txns');
L_CHECKER_ID := GLOBAL.USER_ID;
END IF;
IF (GWPKS_UTIL.PKG_FUNC IN ('1408', '1401', '8207') OR
UPPER(P_TY_RETAILTLR_UPD.PRODUCT_CODE) IN ('MSCC', 'CHDP', 'FXPA')) AND
TRIM(P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO) IS NOT NULL THEN

DBG('gwpks_util.pkg_func' || GWPKS_UTIL.PKG_FUNC);
-- Insert the utilised amount details if negotiation deal is used
--T24 Special Deal Phase 2 changes starts
IF GWPKS_UTIL.PKG_FUNC IN ('1408', '1401', '8207') THEN
L_CR_CCY := P_TY_RETAILTLR_UPD.TXN_CCY;
L_DR_CCY := P_TY_RETAILTLR_UPD.OFS_CCY;
L_DR_AC := P_TY_RETAILTLR_UPD.OFS_ACC;
L_CR_AC := P_TY_RETAILTLR_UPD.TXN_ACC;
ELSIF GWPKS_UTIL.PKG_FUNC IN ('1008', '1001', '8206') THEN
L_CR_CCY := P_TY_RETAILTLR_UPD.OFS_CCY;
L_DR_CCY := P_TY_RETAILTLR_UPD.TXN_CCY;
L_DR_AC := P_TY_RETAILTLR_UPD.TXN_ACC;
L_CR_AC := P_TY_RETAILTLR_UPD.OFS_ACC;
END IF;

CSPKS_SPECIAL_DEAL_UTILS.PR_UTILISATION(P_TY_RETAILTLR_UPD.TRN_REF_NO,

P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO,
'RT',
P_SOURCE,
GWPKS_UTIL.PKG_FUNC,
'NEW',
L_DR_CCY,
L_CR_CCY,
L_DR_AC,
L_CR_AC,
GLOBAL.APPLICATION_DATE,
L_TXN_AMT,
L_TXN_CCY,
P_TY_RETAILTLR_UPD.EXCH_RATE,
GLOBAL.CURRENT_BRANCH,
'TFR_AMT',
GLOBAL.USER_ID, --maker
L_CHECKER_ID,
P_TY_RETAILTLR_UPD.XREF,
P_ERR_CODE,
P_ERR_PARAM);
ELSIF ((GWPKS_UTIL.PKG_FUNC IN ('1008', '1001', '8206') OR
UPPER(P_TY_RETAILTLR_UPD.PRODUCT_CODE) IN
('MSCD', 'CHWL', 'FXSA')) OR
P_SOURCE NOT IN ('FLEXBRANCH', 'FLEXCUBE', 'FLEXSWITCH')) AND
TRIM(P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO) IS NOT NULL THEN
DBG('gwpks_util.pkg_func' || GWPKS_UTIL.PKG_FUNC);
-- Insert the utilised amount details if negotiation deal is used
--T24 Special Deal Phase 2 changes starts
IF GWPKS_UTIL.PKG_FUNC IN ('1408', '1401', '8207') THEN
L_CR_CCY := P_TY_RETAILTLR_UPD.TXN_CCY;
L_DR_CCY := P_TY_RETAILTLR_UPD.OFS_CCY;
L_DR_AC := P_TY_RETAILTLR_UPD.OFS_ACC;
L_CR_AC := P_TY_RETAILTLR_UPD.TXN_ACC;
ELSIF GWPKS_UTIL.PKG_FUNC IN ('1008', '1001', '8206') OR
P_SOURCE NOT IN ('FLEXBRANCH', 'FLEXCUBE', 'FLEXSWITCH') THEN
DBG('Coming here in else for else part.... ');
L_CR_CCY := P_TY_RETAILTLR_UPD.OFS_CCY;
L_DR_CCY := P_TY_RETAILTLR_UPD.TXN_CCY;
L_DR_AC := P_TY_RETAILTLR_UPD.TXN_ACC;
L_CR_AC := P_TY_RETAILTLR_UPD.OFS_ACC;
END IF;
CSPKS_SPECIAL_DEAL_UTILS.PR_UTILISATION(P_TY_RETAILTLR_UPD.TRN_REF_NO,

P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO,
'RT',
P_SOURCE,
GWPKS_UTIL.PKG_FUNC,
'NEW',
L_DR_CCY,
L_CR_CCY,
L_DR_AC,
L_CR_AC,
GLOBAL.APPLICATION_DATE,
L_TXN_AMT,
L_TXN_CCY,
P_TY_RETAILTLR_UPD.EXCH_RATE,
GLOBAL.CURRENT_BRANCH,
'TFR_AMT',
GLOBAL.USER_ID, --maker
L_CHECKER_ID,
P_TY_RETAILTLR_UPD.XREF,
L_ERR_CODE,
L_ERR_PARAM);
END IF;
/*INSERT INTO sttm_cust_deal_details_multi
(internal_deal_ref_no,
utilized_amount,
utilized_currency,
debit_account,
credit_account,
flexcube_module_id,
fc_ref_no,
SOURCE,
maker_id,
maker_dt_stamp,
checker_id,
checker_dt_stamp,
mod_no,
external_ref_no,
utilization_type,
value_date,
reval_flag,
multi_deal_ref_no \*,
unutilized_amount*\,
trnref_or_accountno) --aditya GX changes
VALUES
(p_ty_retailtlr_upd.negotiation_ref_no,
--4903 changes starts
\*P_TY_RETAILTLR_UPD.TXN_AMOUNT,
P_TY_RETAILTLR_UPD.TXN_CCY,*\
l_txn_amt,
l_deal_ccy,
--4903 changes starts
p_ty_retailtlr_upd.ofs_acc,
p_ty_retailtlr_upd.txn_acc,
nvl(p_ty_retailtlr_upd.module, 'RT'),
p_ty_retailtlr_upd.trn_ref_no,
p_ty_retailtlr_upd.scode,
p_ty_retailtlr_upd.maker_id,
\*P_TY_RETAILTLR_UPD.MAKER_DT_STAMP*\
global.application_date,
p_ty_retailtlr_upd.checker_id,
p_ty_retailtlr_upd.checker_dt_stamp,
p_ty_retailtlr_upd.mod_no,
p_ty_retailtlr_upd.xref,
'SYSTEM',
global.application_date,
'N',
l_serial_deal \*,
(SELECT z.tot_utilised_amount -
P_TY_RETAILTLR_UPD.TXN_AMOUNT
FROM
sttm_cust_deal_details z
WHERE
z.internal_deal_ref_no = P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO)*\,
p_ty_retailtlr_upd.trn_ref_no); --aditya GX changes*/
--T24 Special Deal Phase 2 changes ends
--T24 Special Deal Phase 2 changes starts
/* ELSIF ((gwpks_util.pkg_func IN ('1008', '1001', '8206') OR
upper(p_ty_retailtlr_upd.product_code) IN
('MSCD', 'CHWL', 'FXSA')) OR p_source not in ('FLEXBRANCH', 'FLEXCUBE',
'FLEXSWITCH')) AND
TRIM(p_ty_retailtlr_upd.negotiation_ref_no) IS NOT NULL THEN

dbg('gwpks_util.pkg_func' || gwpks_util.pkg_func);

-- Insert the utilised amount details if negotiation deal is used


INSERT INTO sttm_cust_deal_details_multi
(internal_deal_ref_no,
utilized_amount,
utilized_currency,
debit_account,
credit_account,
flexcube_module_id,
fc_ref_no,
SOURCE,
maker_id,
maker_dt_stamp,
checker_id,
checker_dt_stamp,
mod_no,
external_ref_no,
utilization_type,
value_date,
reval_flag,
multi_deal_ref_no \*,
unutilized_amount*\,
trnref_or_accountno) --aditya GX changes
VALUES
(p_ty_retailtlr_upd.negotiation_ref_no,
--4903 changes starts
\*P_TY_RETAILTLR_UPD.TXN_AMOUNT,
P_TY_RETAILTLR_UPD.TXN_CCY,*\
l_txn_amt,
l_deal_ccy,
--4903 changes starts
p_ty_retailtlr_upd.txn_acc,
p_ty_retailtlr_upd.ofs_acc,
nvl(p_ty_retailtlr_upd.module, 'RT'),
p_ty_retailtlr_upd.trn_ref_no,
p_ty_retailtlr_upd.scode,
p_ty_retailtlr_upd.maker_id,
\*P_TY_RETAILTLR_UPD.MAKER_DT_STAMP*\
global.application_date,
p_ty_retailtlr_upd.checker_id,
p_ty_retailtlr_upd.checker_dt_stamp,
p_ty_retailtlr_upd.mod_no,
p_ty_retailtlr_upd.xref,
'SYSTEM',
global.application_date,
'N',
l_serial_deal \*,
(SELECT z.tot_utilised_amount -
P_TY_RETAILTLR_UPD.TXN_AMOUNT
FROM
sttm_cust_deal_details z
WHERE
z.internal_deal_ref_no = P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO)*\,
p_ty_retailtlr_upd.trn_ref_no); --aditya GX changes
END IF;*/
--T24 Special Deal Phase 2 changes ends
DBG('P_TY_RETAILTLR_UPD.TRN_REF_NO:' || P_TY_RETAILTLR_UPD.TRN_REF_NO);
--4903 changes starts
/*L_UTIL_AMT := NULL;

-- Check if utilised amount reached the deal amount limit


-- and update the deal status to completed
BEGIN
SELECT SUM(T.UTILIZED_AMOUNT)
INTO L_UTIL_AMT
FROM STTM_CUST_DEAL_DETAILS_MULTI T
WHERE T.INTERNAL_DEAL_REF_NO = P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO;
EXCEPTION
WHEN OTHERS THEN
L_UTIL_AMT := 0;
END;
*/
--T24 Special Deal Phase 2 changes starts
/*l_upd_util := l_util_amt + l_txn_amt;
--4903 changes ends

IF l_deal_status = 'A' AND (l_upd_util \*L_UTIL_AMT*\


>= l_deal_amt) THEN
--4903 changes <l_util_amt change>
UPDATE sttm_cust_deal_details t
SET t.deal_status = 'F', t.tot_utilised_amount = l_upd_util --L_UTIL_AMT
-- 4903 changes<l_util_amt change>
WHERE t.internal_deal_ref_no = p_ty_retailtlr_upd.negotiation_ref_no
AND t.auth_stat = 'A'
AND t.record_stat = 'O';
ELSE
UPDATE sttm_cust_deal_details t
SET t.tot_utilised_amount = l_upd_util \*L_UTIL_AMT*\ -- 4903
changes<l_util_amt change>
WHERE t.internal_deal_ref_no = p_ty_retailtlr_upd.negotiation_ref_no
AND t.auth_stat = 'A'
AND t.record_stat = 'O';
END IF;

--- tmp
UPDATE sttm_cust_deal_details_multi
SET unutilized_amount = l_deal_amt - l_upd_util \*l_util_amt*\ -- 4903
changes<l_util_amt change>
WHERE internal_deal_ref_no = p_ty_retailtlr_upd.negotiation_ref_no
AND fc_ref_no = p_ty_retailtlr_upd.trn_ref_no
AND SOURCE = p_ty_retailtlr_upd.scode;
-- tmp*/
--T24 Special Deal Phase 2 changes ends
DBG('Successfully completed fn_insert_deal_util..');

RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('Failed in fn_insert_deal_util' || SQLERRM);
P_RET := -1;
RETURN FALSE;
END FN_INSERT_DEAL_UTIL;

--Changes FCUBS_11 2 0 0 0$BOMLAE_R22_10332_T24, CR 10332_T24 Special deal ends

FUNCTION FN_UPLOAD(P_TY_RETAILTLR_UPD IN OUT DETB_UPLOAD_RTL_TELLER%ROWTYPE --


typeconv typ_retail_teller_rec
,
P_TBL_CHGDETS IN OUT TYP_TBLCHGDETS,
P_UPL_MIS_DET IN OUT MITBS_UPLOAD_CLASS_MAPPING%ROWTYPE,
P_UPL_UDF_DET IN OUT UVPKSS_UDF_UPLOAD.TY_UPL_CONT_UDF,
P_UPL_PCDETAILS IN OUT DETB_PCTRN%ROWTYPE,
P_TY_MCKDETAILS IN OUT ISTB_UPLOAD_CONTRACTIS%ROWTYPE --
typeconv typ_mckdetails_fjb,
,
P_TY_MSGDETS IN OUT CSTB_UPLOAD_ARC_SETTLE%ROWTYPE --
typeconv typ_msgdets_fjb
,
P_TBL_NODE_REC IN TYP_NODE_TBL,
P_SOURCE IN VARCHAR2 --FCUBS10.0LOT3 Branch
Integration Added
,
P_OVERRIDE_FLAG OUT CHAR,
P_AUTH_STAT OUT CHAR,
P_RET IN OUT NUMBER,
P_TYP_ERR IN OUT OVPKSS.TBL_ERROR)
RETURN BOOLEAN IS
----------------------------
L_ERR_CODE VARCHAR2(200);
L_ERR_PARAM VARCHAR2(2000);
L_SERIAL_USELESS VARCHAR2(10); -- NO use. only used as parameter for a
call to trpkss.fn_get_product_refno
L_STATUS_ON_SAVE COTMS_SOURCE_PREF.UPLOADED_STATUS%TYPE;
L_ACTION_ON_EXCEPTION COTMS_SOURCE_PREF.ON_ERROR%TYPE;
L_ACTION_ON_OVERRIDE COTMS_SOURCE_PREF.ON_OVERRIDE%TYPE;
L_KEY STTBS_RECORD_LOG.KEY_ID%TYPE; -- FCC73ITR2 SFR 58

--FCUBS10.0LOT3 Branch Integration starts


L_WHAT_TO_DO CHAR(1);
L_AUTH_STATUS CHAR(1);
OVERRIDE_EXCEPTION EXCEPTION;
FAILURE_EXCEPTION EXCEPTION;
L_TY_RETAIL_TELLER DETB_RTL_TELLER%ROWTYPE;
L_TY_MSG_DETS CSTB_ARC_SETTLE%ROWTYPE;
L_TY_MCKDETAILS ISVW_MCK_DETAILS%ROWTYPE;
L_SOURCE COTMS_SOURCE.SOURCE_CODE%TYPE; --fcubs11.2 it1 sfr 727
L_REFNO CSTB_CLEARING_MASTER.REFERENCE_NO%TYPE; --fcubs11.2 it1 sfr
727
L_XREF CSTB_CLEARING_MASTER.XREF%TYPE; --fcubs11.2 it1 sfr 727
L_TY_CLG_REC CGPKS_UPLOAD_CG_REJECT.REC_CSTB_CLG_REC; --fcubs11.2 it1 sfr
727
L_TEMP_VIR_ACC_NO DETB_RTL_TELLER.VIR_ACC_NO%TYPE := NULL; --VIRTUAL ACCOUNT
CHANGE
--MBU22 change start
L_USER_ID VARCHAR2(32);
L_TILL_ID VARCHAR2(32);
L_MSG VARCHAR2(2000);
L_USER_ID_MSG VARCHAR2(32);
L_TILL_ID_MSG VARCHAR2(32);
I_VOUCHER_NARRATIVE VARCHAR2(150);

--MBU22 change end


-- QARUAT1 DEFLT00007844 start
L_FIELD_COUNTER NUMBER;
L_ERROR VARCHAR2(200);
-- QARUAT1 DEFLT00007844 end
L_TXN_CNT NUMBER; -- MBU22 TILL LIMIT VALIDATION
-- AEDMSQFCC0976_1 Changes start
L_PC_TXN DETM_RT_PREFERENCES.PC_TXN%TYPE;
-- AEDMSQFCC0976_1 Changes end
L_TOT_CHG DETB_RTL_TELLER.TOT_CHG_IN_TCY%TYPE; --FCUBS_11.2.0.0.0_$BOMLAE_R16
Branch Requirements changes
--FCUBS_11.2.0.0.0_$BOMLAE_R18 FCYatBranch Start
L_FN_CALL_ID NUMBER;
L_TB_CLUSTER_DATA GLOBAL.TY_TB_CLUSTER_DATA;
L_TB_EMPTY_CLUSTER_DATA GLOBAL.TY_TB_CLUSTER_DATA;
--FCUBS_11.2.0.0.0_$BOMLAE_R18 FCYatBranch End
--BOMLAE_R22_Sub_Account changes for RT Services begin
L_PARENT_ACC STTM_CUST_ACCOUNT.CUST_AC_NO%TYPE;
L_PARENT_OFS_ACC STTM_CUST_ACCOUNT.CUST_AC_NO%TYPE;
L_IS_SUBACC CHAR(1);
--BOMLAE_R22_Sub_Account changes for RT Services end

-- FCUBS_11 2 0 0 0$BOMLAE_R22_10332_T24, CR 10332_T24 Special deal changes


starts

L_COUNTRY_CODE VARCHAR2(10);
L_EXCH_RT_COUNT NUMBER;
L_DEAL_COUNT NUMBER;
l_tcr_count number := 0; --madhu added for TCR
L_TCR_ERR_CODE ERTB_MSGS.ERR_CODE%TYPE; --MADHU TCR CHANGES
L_TCR_ERR_TYPE VARCHAR2(1); --MADHU TCR CHANGES

-- FCUBS_11 2 0 0 0$BOMLAE_R22_10332_T24, CR 10332_T24 Special deal changes


ends
BEGIN
--DBG('Inside fn_upload.......' || CSPKS_REQ_GLOBAL.G_HEADER('ACTION'));--Bala
commented as ATM txns failed
DBG('g_viraccno after entering in Depks_RetailTellerUpload.fn_upload g_viraccno
:::: ' ||
G_VIRACCNO);
/*DEFLT00022407 changes start*/
P_TY_RETAILTLR_UPD.SCODE := P_SOURCE;
/*DEFLT00022407 changes end*/
--DEFLT00025289 changes Starts
IF P_TY_RETAILTLR_UPD.TXN_ACC IS NOT NULL THEN
ICPKS_UTIL.G_RP_ACCOUNT := P_TY_RETAILTLR_UPD.TXN_ACC;
ELSE
ICPKS_UTIL.G_RP_ACCOUNT := P_TY_RETAILTLR_UPD.OFS_ACC;
END IF;
--DEFLT00025289 changes Ends
--MBU22 - 11.2.0.1.0BOMLAE?<<9021 ALERT MESSAGE CHANGE STARTS>>
-- UAT_UAE_064 changes start
IF P_TY_RETAILTLR_UPD.SCODE = 'FLEXBRANCH' THEN
-- UAT_UAE_064 changes end
BEGIN
DBG('inside cursor denom details');
--dev temp changes start
DBG('values');
DBG('transaction account' || P_TY_RETAILTLR_UPD.TXN_ACC);
DBG('gwpks_util.pkg_func' || GWPKS_UTIL.PKG_FUNC);

IF GWPKS_UTIL.PKG_FUNC IN ('1401', '1001') THEN

--if p_ty_retail_teller.TXN_BRANCH IS NULL THEN


BEGIN
SELECT BRANCH_CODE
INTO P_TY_RETAILTLR_UPD.TXN_BRANCH
FROM STTB_ACCOUNT
WHERE AC_GL_NO = P_TY_RETAILTLR_UPD.TXN_ACC;

DBG('TXN BRANCH_CODE ' || P_TY_RETAILTLR_UPD.TXN_BRANCH);


EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;

END IF;

--dev temp changes end

DBG('RAISING ALERT MESSAGE TO THE RECIEVER TILL');


SELECT USER_ID, TIL_ID
INTO L_USER_ID, L_TILL_ID
FROM FBTB_TILL_MASTER
WHERE TIL_ID = GWPKS_UTIL.G_OFFSET_TILL
AND BRANCH_CODE = GLOBAL.CURRENT_BRANCH;

SELECT USER_ID, TIL_ID


INTO L_USER_ID_MSG, L_TILL_ID_MSG
FROM FBTB_TILL_MASTER
WHERE TIL_ID = GWPKS_UTIL.G_TILL_ID
AND BRANCH_CODE = GLOBAL.CURRENT_BRANCH;

L_MSG := '
Reference No : ' || P_TY_RETAILTLR_UPD.XREF || '
Amount : ' || P_TY_RETAILTLR_UPD.TXN_AMOUNT; /*|| '

Denominations: ';*/

/* FOR EACH_REC IN (SELECT *


FROM fbtb_till_txn_detail
WHERE xref = p_ty_retailtlr_upd.xref
AND till_id = GWPKS_UTIL.G_TILL_ID) LOOP
dbg('inside for loop of denom details');
dbg('values fetched CCY_CODE ' || EACH_REC.ccycode || '
DENOM_CODE ' || EACH_REC.denomcode || '
NUMBER ' || EACH_REC.inflow);
l_MSG := l_MSG || 'Denomination code ' || EACH_REC.denomcode ||
'Numbers ' || EACH_REC.inflow;
END LOOP;*/

L_MSG := L_MSG || 'From Till : ' || L_TILL_ID_MSG || 'From User : ' ||


L_USER_ID_MSG;

DBG('VALUES INSERTED IN TO TABLE USER_ID:' || L_USER_ID || '


TILL ID:' || L_TILL_ID || '
MESSAGE:' || L_MSG);

INSERT INTO CSTB_USER_ALERTS


(USER_ID, SEQUENCE_NO, ALERT_TYPE, MESSAGE, STATUS)
VALUES
(L_USER_ID, '', 'I', L_MSG, 'U');

EXCEPTION
WHEN NO_DATA_FOUND THEN
DBG('no data is found in cstb_user_alerts ');
WHEN OTHERS THEN
DBG('failed in raising alert message');

END;
-- UAT_UAE_064 changes start
END IF;
-- UAT_UAE_064 changes end
--MBU22 - 11.2.0.1.0BOMLAE?<<9021 ALERT MESSAGE CHANGE ENDS>>

---------------------
OVPKSS.PR_INITERRTBL;
---------------------

--FAZIL PT CHANGES

IF P_SOURCE NOT IN ('FLEXBRANCH', 'FLEXCUBE', 'FLEXSWITCH') THEN

IF P_TY_RETAILTLR_UPD.TXN_BRANCH IS NULL AND


P_TY_RETAILTLR_UPD.TXN_ACC IS NOT NULL THEN
BEGIN
SELECT NVL(BRANCH_CODE, GLOBAL.CURRENT_BRANCH)
INTO P_TY_RETAILTLR_UPD.TXN_BRANCH
FROM STTB_ACCOUNT
WHERE AC_GL_NO = P_TY_RETAILTLR_UPD.TXN_ACC;

DBG('TXN BRANCH_CODE ' || P_TY_RETAILTLR_UPD.TXN_BRANCH);


EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;

END IF;

IF P_TY_RETAILTLR_UPD.OFS_BRANCH IS NULL AND


P_TY_RETAILTLR_UPD.OFS_ACC IS NOT NULL THEN
BEGIN
SELECT NVL(BRANCH_CODE, GLOBAL.CURRENT_BRANCH)
INTO P_TY_RETAILTLR_UPD.OFS_BRANCH
FROM STTB_ACCOUNT
WHERE AC_GL_NO = P_TY_RETAILTLR_UPD.OFS_ACC;

DBG('OFS BRANCH_CODE ' || P_TY_RETAILTLR_UPD.TXN_BRANCH);


EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;

END IF;

END IF;

--FAZIL PT CHANGES

DBG('p_ty_retailtlr_upd.scode : ' || P_TY_RETAILTLR_UPD.SCODE);

--NEFT/RTGS CHANGES 1405


DEPKS_RETAILTELLERUPLOAD.G_PCDETAILS := P_UPL_PCDETAILS;
--NEFT/RTGS CHANGES 1405
P_TY_RETAILTLR_UPD.SCODE := P_SOURCE; --10.3 IVR
P_TY_RETAILTLR_UPD.CHECKER_ID := GWPKS_UTIL.G_CHECKERID; --fcubs 11.0 SFR 874
IF NOT FN_VALIDATE(P_TY_RETAILTLR_UPD,
P_TBL_CHGDETS,
P_UPL_MIS_DET,
P_UPL_UDF_DET,
P_TY_MCKDETAILS,
P_TY_MSGDETS,
P_TBL_NODE_REC,
P_RET) THEN
DBG('E',
'Failed while calling gwpkss_rt_validate.fn_validate with p_flag :' ||
P_RET);
OVPKSS.PR_READTBL(L_ERR_CODE, L_ERR_PARAM);
DBG('E', 'returned p_err_codes and p_err_params are as follows....');
DBG('E', 'p_err_code......... :' || L_ERR_CODE);
DBG('E', 'p_err_param........ :' || L_ERR_PARAM);
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN FALSE;
END IF;
--FCUBS_12.0_FUJITSU(EXT HOOKS)_15842655 virtual starts
/* IF Cspks_Req_Global.g_Release_Type in
(Cspks_Req_Global.p_Cluster,Cspks_Req_Global.p_Custom) THEN
dbg('Calling depks_ret_telr_upld_cluster.Fn_Upload..........');
l_fn_call_id := 1;
l_tb_cluster_data := l_tb_cluster_data_empty;
IF NOT depks_ret_telr_upld_cluster.fn_upload(p_ty_retailtlr_upd,
p_tbl_chgdets,
p_upl_mis_det,
p_upl_udf_det,
p_upl_pcdetails,
p_ty_mckdetails,
p_ty_msgdets,
p_tbl_node_rec,
p_source,
p_override_flag,
p_auth_stat,
p_ret,
p_typ_err,
l_fn_call_id,
l_tb_cluster_data) THEN
dbg('failed in Depks_Retailtellerupd_Cluster.Fn_Upload ===>>' || SQLERRM);
ovpkss.pr_readtbl(l_err_code, l_err_param);
p_typ_err := ovpkss.gl_tblerror;
RETURN FALSE;
END IF;
END IF;*/
--FCUBS_12.0_FUJITSU(EXT HOOKS)_15842655 virtual ends

---9NT1428 ITR#2 SFR No 67, 91 Starts


DBG('Product Value is p_ty_retailtlr_upd.product_code: ' ||
P_TY_RETAILTLR_UPD.PRODUCT_CODE);
--BLR_11.2_IMP_BDTOBL_SFR#194 starts,commented below code
/* IF p_ty_retailtlr_upd.product_code IN ('LOCH','CQWL') THEN
IF NOT casapks.fn_validate_cheque_details(p_ty_retailtlr_upd.txn_branch,
p_ty_retailtlr_upd.txn_acc,

p_ty_retailtlr_upd.dr_instrument_code,
p_ty_retailtlr_upd.txn_amount,
l_err_code,
l_err_param) THEN
ovpks.pr_appendtbl(l_err_code, l_err_param);
dbg('Failed in cgpks_upload_cg_create while validating the Cheque
Details :');
RETURN FALSE;
END IF;
END IF;
*/
--BLR_11.2_IMP_BDTOBL_SFR#194 ENDS
---9NT1428 ITR#2 SFR No 67, 91 Ends
--
******************************************************************************

--MBU22 OFAC CHANGES START HERE


IF GWPKS_UTIL.PKG_FUNC IN ('8203', '1014') THEN
IF P_SOURCE = 'FLEXBRANCH' AND GWPKS_UTIL.PKG_ACTTYPE = 'INPUT' THEN
NULL;
END IF;
--DO OFAC CHK HERE
END IF;
--MBU22 OFAC CHANGES END HERE
---MBU22 TRSRY CHANGES START HERE
IF P_SOURCE = 'FLEXBRANCH' /*AND gwpks_util.pkg_acttype IN ('INPUT')*/
THEN
NULL;
-- PERFORM TRSRY CHECK HERE
END IF;
--MBU22 TRSRY CHANGES END HERE
--BOMLAE_R22_Sub_Account changes for RT Services begin
IF P_SOURCE NOT IN ('FLEXBRANCH', 'FLEXCUBE', 'FLEXSWITCH') THEN
DBG('BINGO function' || GWPKS_UTIL.PKG_FUNC);
BEGIN
SELECT NVL(ACL.SUB_ACCNT, 'N')
INTO L_IS_SUBACC
FROM STTM_ACCOUNT_CLASS_CUSTOM ACL
WHERE ACL.ACCOUNT_CLASS =
(SELECT AC.ACCOUNT_CLASS
FROM STTM_CUST_ACCOUNT AC
WHERE AC.CUST_AC_NO = P_TY_RETAILTLR_UPD.TXN_ACC
AND AC.BRANCH_CODE = P_TY_RETAILTLR_UPD.TXN_BRANCH);
EXCEPTION
WHEN NO_DATA_FOUND THEN
L_IS_SUBACC := 'N';
WHEN OTHERS THEN
L_IS_SUBACC := 'N';
END;
DBG('BINGO subaccflg' || L_IS_SUBACC);
IF L_IS_SUBACC = 'Y' THEN
BEGIN
SELECT ACC.ACNO
INTO L_PARENT_ACC
FROM STTM_CUST_ACCOUNT_CUSTOM ACC
WHERE ACC.SUB_ACC_NO = P_TY_RETAILTLR_UPD.TXN_ACC
AND ACC.AC_BRANCH = P_TY_RETAILTLR_UPD.TXN_BRANCH;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBG('unable to fetch parent account for ' ||
P_TY_RETAILTLR_UPD.TXN_ACC);
OVPKSS.PR_APPENDTBL('ST-SACC-023', P_TY_RETAILTLR_UPD.TXN_ACC);
RETURN FALSE;
WHEN OTHERS THEN
DBG('unable to fetch parent account for ' ||
P_TY_RETAILTLR_UPD.TXN_ACC);
OVPKSS.PR_APPENDTBL('ST-SACC-023', P_TY_RETAILTLR_UPD.TXN_ACC);
RETURN FALSE;
END;
G_FRM_SUBACCNO := P_TY_RETAILTLR_UPD.TXN_ACC;
P_TY_RETAILTLR_UPD.TXN_ACC := L_PARENT_ACC;
END IF;
DBG('BINGO parent acc' || L_PARENT_ACC);
L_IS_SUBACC := 'N';
BEGIN
SELECT NVL(ACL.SUB_ACCNT, 'N')
INTO L_IS_SUBACC
FROM STTM_ACCOUNT_CLASS_CUSTOM ACL
WHERE ACL.ACCOUNT_CLASS =
(SELECT AC.ACCOUNT_CLASS
FROM STTM_CUST_ACCOUNT AC
WHERE AC.CUST_AC_NO = P_TY_RETAILTLR_UPD.OFS_ACC
AND AC.BRANCH_CODE = P_TY_RETAILTLR_UPD.OFS_BRANCH);
EXCEPTION
WHEN NO_DATA_FOUND THEN
L_IS_SUBACC := 'N';
WHEN OTHERS THEN
L_IS_SUBACC := 'N';
END;
IF L_IS_SUBACC = 'Y' THEN
BEGIN
SELECT ACC.ACNO
INTO L_PARENT_OFS_ACC
FROM STTM_CUST_ACCOUNT_CUSTOM ACC
WHERE ACC.SUB_ACC_NO = P_TY_RETAILTLR_UPD.OFS_ACC
AND ACC.AC_BRANCH = P_TY_RETAILTLR_UPD.OFS_BRANCH;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBG('unable to fetch parent account for ' ||
P_TY_RETAILTLR_UPD.OFS_ACC);
OVPKSS.PR_APPENDTBL('ST-SACC-023', P_TY_RETAILTLR_UPD.OFS_ACC);
RETURN FALSE;
WHEN OTHERS THEN
DBG('unable to fetch parent account for ' ||
P_TY_RETAILTLR_UPD.OFS_ACC);
OVPKSS.PR_APPENDTBL('ST-SACC-023', P_TY_RETAILTLR_UPD.OFS_ACC);
RETURN FALSE;
END;
G_TO_SUBACCNO := P_TY_RETAILTLR_UPD.OFS_ACC;
P_TY_RETAILTLR_UPD.OFS_ACC := L_PARENT_OFS_ACC;

END IF;
CASE
WHEN P_TY_RETAILTLR_UPD.PRODUCT_CODE = 'CHDP' THEN
GWPKS_UTIL.PKG_FUNC := '1401';
WHEN P_TY_RETAILTLR_UPD.PRODUCT_CODE = 'FTRQ' THEN
GWPKS_UTIL.PKG_FUNC := '1006';
WHEN P_TY_RETAILTLR_UPD.PRODUCT_CODE = 'LOCH' THEN
GWPKS_UTIL.PKG_FUNC := 'LOCH';
ELSE
NULL;
END CASE;
END IF;
--BOMLAE_R22_Sub_Account changes for RT Services end
IF NOT FN_COPY_UPLOAD_TO_BASE(P_TY_RETAILTLR_UPD,
P_TY_MSGDETS,
P_TY_MCKDETAILS,
L_TY_RETAIL_TELLER,
L_TY_MSG_DETS,
L_TY_MCKDETAILS,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('Failed in fn_copy_upload_to_base' || SQLERRM);
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;
--
******************************************************************************
IF NOT FN_DEFAULT_VALUES(L_TY_RETAIL_TELLER,
P_TBL_CHGDETS,
P_UPL_MIS_DET,
P_UPL_UDF_DET,
L_TY_MCKDETAILS,
L_TY_MSG_DETS,
P_TBL_NODE_REC,
P_TY_RETAILTLR_UPD.FT,
P_RET) THEN
DBG('E',
'Failed while returning from function fn_validate_incoming_data');
P_RET := -1;
RETURN FALSE;
END IF;
DBG('Ref No: ' || L_TY_RETAIL_TELLER.TRN_REF_NO);

--
******************************************************************************
IF L_TY_RETAIL_TELLER.TRN_REF_NO IS NULL OR
P_SOURCE NOT IN ('FLEXBRANCH', 'FLEXSWITCH') THEN

IF NOT TRPKSS.FN_GET_PRODUCT_REFNO(L_TY_RETAIL_TELLER.BRANCH_CODE,
L_TY_RETAIL_TELLER.PRODUCT_CODE,
GLOBAL.APPLICATION_DATE,
L_SERIAL_USELESS,
L_TY_RETAIL_TELLER.TRN_REF_NO,
L_ERR_CODE) THEN
DBG('Failed in generating prod ref no with p_err_code : ' ||
L_ERR_CODE);
OVPKSS.PR_APPENDTBL(L_ERR_CODE, NULL);
P_TYP_ERR := OVPKSS.GL_TBLERROR;
P_RET := -1;
RETURN FALSE;
END IF;
END IF;
DBG('Generated Ref No: ' || L_TY_RETAIL_TELLER.TRN_REF_NO);
P_TY_RETAILTLR_UPD.TRN_REF_NO := L_TY_RETAIL_TELLER.TRN_REF_NO; -- pass fcc ref
no :CM
L_TY_RETAIL_TELLER.SCODE := P_SOURCE; --FCUBS 10.1 Switch Interface Tuning
Changes starts
P_TY_RETAILTLR_UPD.SCODE := P_SOURCE; -- ''

--FCUBS10.0LOT3 starts
IF L_TY_RETAIL_TELLER.XREF IS NULL THEN
L_TY_RETAIL_TELLER.XREF := L_TY_RETAIL_TELLER.TRN_REF_NO;
END IF;
--FCUBS10.0LOT3 ends
--
******************************************************************************
-- FCC73ITR1 SFR 329 Start
P_TYP_ERR := OVPKSS.GL_TBLERROR;
IF FN_IS_AN_ERROR_RAISED(P_RET) THEN
DBG('E', 'Error found in function fn_upload..');
RETURN FALSE;
END IF;
-- FCC73ITR1 SFR 329 End

L_TY_RETAIL_TELLER.SCODE := P_TY_RETAILTLR_UPD.SCODE; -- FCC73ITR1 SFR 471


L_TY_RETAIL_TELLER.AUTH_STAT := 'U'; --Kerenl 8.0 LOT3

--
***********************************************************************************
*******
DBG('l_ty_retail_teller.xref : ' || L_TY_RETAIL_TELLER.XREF);
DBG('Inserting into detbs_rtl_teller');

--VIRTUAL ACCOUNT CHANGE START


IF NVL(L_TY_RETAIL_TELLER.VIR_ACC_NO, '***') =
L_TY_RETAIL_TELLER.TXN_ACC THEN
DBG(' Virtual Acc is the same as the physical account ');
L_TEMP_VIR_ACC_NO := L_TY_RETAIL_TELLER.VIR_ACC_NO;
L_TY_RETAIL_TELLER.VIR_ACC_NO := NULL;
END IF;

--phase2 chnages for invoice number start


IF NVL(L_TY_RETAIL_TELLER.VIR_ACC_NO, '***') =
L_TY_RETAIL_TELLER.OFS_ACC THEN
DBG(' Virtual Acc is the same as the physical account ');
L_TEMP_VIR_ACC_NO := L_TY_RETAIL_TELLER.VIR_ACC_NO;
L_TY_RETAIL_TELLER.VIR_ACC_NO := NULL;
END IF;
-- phase2 chnages for invoice number ends

--VIRTUAL ACCOUNT CHANGE END

--Changes FCUBS_11 2 0 0 0$BOMLAE_R22_10332_T24, CR 10332_T24 Special deal


starts

/* BEGIN
select PARAM_VAL
into l_country_code
from cstb_param
where param_name = 'COUNTRY_CODE';
EXCEPTION
WHEN OTHERS THEN
l_country_code := NULL;
END;

IF l_country_code IS NOT NULL AND l_country_code = 'UAE' THEN */


IF INSTR(NVL(CSPKS_OS_PARAM.GET_PARAM_VAL('T24_DEAL_CNTRY'), '~**~'),
NVL(CSPKS_OS_PARAM.GET_PARAM_VAL('COUNTRY_CODE'),
GLOBAL.COUNTRY_CODE)) > 0 THEN
-- 5026 changes
SELECT COUNT(*)
INTO L_DEAL_COUNT
FROM STTM_CUST_DEAL_DETAILS
WHERE INTERNAL_DEAL_REF_NO = P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO
AND P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO IS NOT NULL;

IF L_DEAL_COUNT > 0 THEN

IF P_TY_RETAILTLR_UPD.EXCH_RATE IS NULL THEN


OVPKS.PR_APPENDTBL('DL-NEG-014', NULL);
RETURN FALSE;
END IF;

SELECT COUNT(*)
INTO L_EXCH_RT_COUNT
FROM STTM_CUST_DEAL_DETAILS
WHERE ROUND(DEAL_RATE, 5) = ROUND(P_TY_RETAILTLR_UPD.EXCH_RATE, 5)
AND INTERNAL_DEAL_REF_NO = P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO;

IF L_EXCH_RT_COUNT = 0 THEN
OVPKS.PR_APPENDTBL('DL-NEG-014', NULL);
RETURN FALSE;
END IF;
END IF;

END IF; --5026 changes

IF (GWPKS_UTIL.PKG_ACTTYPE = 'SAVEAUTOAUTH' OR
P_SOURCE NOT IN ('FLEXBRANCH', 'FLEXCUBE')) AND
P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO IS NOT NULL THEN
IF NOT FN_VALIDATE_NEGO_DEAL(P_TY_RETAILTLR_UPD,
P_RET,
P_TYP_ERR,
P_SOURCE,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('Failed in fn_validate_nego_deal');
OVPKS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;
END IF;
--------------- arif added -------------------
/* DBG('in fn_validate_nego_deal ACTION'||CSPKS_REQ_GLOBAL.G_HEADER('ACTION'));
DBG('in fn_validate_nego_deal P_SOURCE'||P_SOURCE);

IF CSPKS_REQ_GLOBAL.G_HEADER('ACTION') ='NEW' AND P_SOURCE <>'FLEXCUBE' THEN


IF P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO IS NOT NULL THEN
IF NOT FN_VALIDATE_NEGO_DEAL(P_TY_RETAILTLR_UPD, P_RET, P_TYP_ERR) THEN
DBG('Failed in fn_validate_nego_deal');
RETURN FALSE;
END IF;
END IF;
END IF;*/
--------------- arif added --------------------
----Changes FCUBS_11 2 0 0 0$BOMLAE_R22_10332_T24, CR 10332_T24 Special deal
ends

INSERT INTO DETBS_RTL_TELLER VALUES L_TY_RETAIL_TELLER;


DBG('Inserted into detbs_rtl_teller..now calling depkss_rtl_teller.fn_upload');
IF L_TEMP_VIR_ACC_NO IS NOT NULL THEN
L_TY_RETAIL_TELLER.VIR_ACC_NO := L_TEMP_VIR_ACC_NO;
END IF;

--FCUBS 10.1 Switch Interface Tuning Changes


--added two parameter to avoid duplicate aRC pickup
--FCUBS11.2 Stale Cheque Validation

--FCUBS_11.2.0.0.0_$BOMLAE_R18 FCYatBranch Start


--Custom call to populate the new fields starts
IF CSPKS_REQ_GLOBAL.G_RELEASE_TYPE IN
(CSPKS_REQ_GLOBAL.P_CLUSTER, CSPKS_REQ_GLOBAL.P_CUSTOM) THEN
L_FN_CALL_ID := 1;
L_TB_CLUSTER_DATA := L_TB_EMPTY_CLUSTER_DATA;
DBG('Calling depks_retailtellerupload_cluster.fn_upload');
IF NOT DEPKS_RTLTELLERUPLOAD_CLUSTER.FN_UPLOAD(P_TY_RETAILTLR_UPD
--,p_tbl_chgdets
,
P_UPL_MIS_DET,
P_UPL_UDF_DET,
P_UPL_PCDETAILS,
P_TY_MCKDETAILS,
P_TY_MSGDETS
--,p_tbl_node_rec
,
P_SOURCE,
P_OVERRIDE_FLAG,
P_AUTH_STAT,
L_FN_CALL_ID,
L_TB_CLUSTER_DATA,
P_RET,
P_TYP_ERR) THEN
DBG('Failed in cluster.fn_upload');
P_RET := -1;
RETURN FALSE;
END IF;
DBG('Successful run of depks_retailtellerupload_cluster.fn_upload');
END IF;
--FCUBS_11.2.0.0.0_$BOMLAE_R18 FCYatBranch End

DBG(' GWPKS_UTIL.G_REJECTFLAG ' || GWPKS_UTIL.G_REJECTFLAG);


IF NOT
FN_VALIDATE_STALE_CHECK(P_TY_RETAILTLR_UPD, L_ERR_CODE, L_ERR_PARAM) THEN

DBG('FAILED IN THE FUNCTION fn_validate_stale_check ');


OVPKSS.PR_READTBL(L_ERR_CODE, L_ERR_PARAM);
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN FALSE;
END IF;

--MBU22 sfr#163 STARTS


--MBU22 - 11.2.0.1.0BOMLAE Mandatory Voucher Narrative Start
IF NOT

DDPKS_UPLOAD_CONTRACT_CREATE.FN_CHECK_MANDATORY_VOUCHER(P_TY_RETAILTLR_UPD.TXN_BRAN
CH,

P_TY_RETAILTLR_UPD.TXN_ACC,

P_TY_RETAILTLR_UPD.TRN_REF_NO,
P_UPL_UDF_DET,
L_ERR_CODE,
L_ERR_PARAM) THEN
OVPKS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
DBG('Failed in cgpks_upload_cg_create while validating the Cheque
Details :');
RETURN FALSE;
END IF;
IF NOT

DDPKS_UPLOAD_CONTRACT_CREATE.FN_CHECK_MANDATORY_VOUCHER(P_TY_RETAILTLR_UPD.OFS_BRAN
CH,

P_TY_RETAILTLR_UPD.OFS_ACC,

P_TY_RETAILTLR_UPD.TRN_REF_NO,
P_UPL_UDF_DET,
L_ERR_CODE,
L_ERR_PARAM) THEN
OVPKS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
DBG('Failed in cgpks_upload_cg_create while validating the Cheque
Details :');
RETURN FALSE;
END IF;
--MBU22 - 11.2.0.1.0BOMLAE Mandatory Voucher Narrative End
--MBU22 sfr#163 ENDS
--FCUBS_11.2.0.0.0_$BOMLAE_R18 FCYatBranch sanity testing start
/*IF ((NVL(l_err_code,'xxx') <> 'DE-CUST-005' AND
gwpks_util.pkg_actType='INPUT') OR
(nvl(l_err_code,'xxx') <> 'DE-CUST-002' AND
gwpks_util.pkg_actType='INPUT')) THEN --FCUBS_11.2.0.0.0_$BOMLAE_R18 ITR1 SFR 1
ADDED THIS IF
*/
IF ((NVL(L_ERR_CODE, 'DE-CUST-005') <> 'DE-CUST-005' AND
GWPKS_UTIL.PKG_ACTTYPE = 'INPUT') OR
(NVL(L_ERR_CODE, 'DE-CUST-002') <> 'DE-CUST-002' AND
GWPKS_UTIL.PKG_ACTTYPE = 'INPUT')) THEN
--FCUBS_11.2.0.0.0_$BOMLAE_R18 FCYatBranch sanity testing end
IF NOT CSPKSS_UPLOAD.FN_WHAT_TO_DO(P_SOURCE,
'RT',
L_WHAT_TO_DO,
L_AUTH_STATUS,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('cspkss_upload.fn_what_to_do returned FALSE');
--ovpkss.pr_appendtbl(l_err_code, l_err_param || '');
RETURN FALSE;
END IF;
DBG('l_what_to_do===>' || L_WHAT_TO_DO);
DBG('l_auth_status===>' || L_AUTH_STATUS);
P_AUTH_STAT := L_AUTH_STATUS;

IF (L_WHAT_TO_DO = 'R') THEN


DBG('What to do has returned Reject Status. Hence exiting..');
RETURN FALSE;

ELSIF L_WHAT_TO_DO = 'M' THEN


RAISE OVERRIDE_EXCEPTION;
END IF;
END IF; --FCUBS_11.2.0.0.0_$BOMLAE_R18 ITR1 SFR 1 ADDED THIS END IF
--FC11.0 SFR 1291 Start
IF L_RT_LEND_FLAG = 'Y' THEN
P_AUTH_STAT := 'A';
END IF;
--FCUBS11.2 Stale Cheque Validation

DBG('CHARCHIKA');
DBG(' GWPKS_UTIL.G_REJECTFLAG ' || GWPKS_UTIL.G_REJECTFLAG);
DBG('gwpks_util.pkg_acttype' || GWPKS_UTIL.PKG_ACTTYPE);
--- FCUBS11.2 ITR1 SFR#504 Reject Code changes starts
IF NVL(GWPKS_UTIL.G_REJECTFLAG, 'N') = 'Y' AND
P_TY_RETAILTLR_UPD.PRODUCT_CODE IN ('LOCH', 'CQWL')
-- if GWPKS_UTIL.PKG_FUNC in ('LOCH','1013')
AND GWPKS_UTIL.PKG_ACTTYPE = 'SAVEAUTOAUTH' THEN

DBG('Nothing is working');
DBG('p_ty_retailtlr_upd' || P_TY_RETAILTLR_UPD.REJECT_CODE);
IF P_TY_RETAILTLR_UPD.REJECT_CODE IS NULL THEN
DBG('O',
'in fn_upload: failed while validating in reject code : Reject Code is
not input. Status of the cheque would be not used');
--l_err_code := 'CG-REJE-001'; --FCUBS11.2 SFR362 ITR2
/*DEFLT00023674 CHANGES STARTS*/
/*ovpkss.pr_appendtbl('CG-REJE-001', NULL); */ --FCUBS11.2 ITR2 SFR#58
changes
OVPKSS.PR_APPENDTBL('CG-REJE-012', NULL);
/*DEFLT00023674 CHANGES ENDS*/

END IF;
--FCUBS11.2 SFR362 ITR2 Startz Commented the below call
/* --FCUBS11.2 ITR2 SFR#58 changes
IF NOT cspkss_upload.fn_what_to_do(p_source,
'RT',
l_what_to_do,
l_auth_status,
l_err_code,
l_err_param) THEN
dbg('cspkss_upload.fn_what_to_do returned FALSE');
--ovpkss.pr_appendtbl(l_err_code, l_err_param || '');
RETURN FALSE;
END IF;
dbg('l_what_to_do===>' || l_what_to_do);
dbg('l_auth_status===>' || l_auth_status);
p_auth_stat := l_auth_status;

IF (l_what_to_do = 'R') THEN


dbg('What to do has returned Reject Status. Hence exiting..');
RETURN FALSE;

ELSIF l_what_to_do = 'M' THEN


RAISE override_exception;
END IF;
--FCUBS11.2 ITR2 SFR#58 changes */
--FCUBS11.2 SFR362 ITR2 Endz

END IF;

--- FCUBS11.2 ITR1 SFR#504 Reject Code changes ends

IF NOT DEPKSS_RTL_TELLER.FN_UPLOAD(L_TY_RETAIL_TELLER.XREF,
FALSE,
PKG_ARC_ROW,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('E', 'Error code is p_err_code :' || L_ERR_CODE);
IF L_ERR_CODE IS NULL THEN
L_ERR_CODE := 'IF-DAT013';
L_ERR_PARAM := L_TY_RETAIL_TELLER.XREF || '~';
END IF;
-- Virtual Account temp changes starts
IF L_ERR_CODE = 'FT-VALS-111;' AND INSTR(L_ERR_PARAM, ';', 1, 2) > 0 THEN
DBG('Inside ft-vals-111');
L_ERR_PARAM := SUBSTR(L_ERR_PARAM, 1, LENGTH(L_ERR_PARAM) - 1);
DBG('l_err_param := ' || L_ERR_PARAM);
END IF;

-- Virtual Account temp changes ends


--- QARUAT1 DEFLT00007844

DBG('l_err_code' || L_ERR_CODE);
DBG('l_field_counter' || L_FIELD_COUNTER);

IF INSTR(L_ERR_CODE, ';') = 0 THEN


OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
END IF;
L_FIELD_COUNTER := 1;
L_ERROR := L_ERR_CODE;
WHILE NVL(CSPKES_MISC.FN_GETPARAM(L_ERROR, L_FIELD_COUNTER, ';'),
'??') <> 'EOPL' LOOP
L_ERR_CODE := NVL(CSPKES_MISC.FN_GETPARAM(L_ERROR,
L_FIELD_COUNTER,
';'),
NULL);
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
L_FIELD_COUNTER := L_FIELD_COUNTER + 1;
END LOOP;

--- QARUAT1 DEFLT00007844


--ovpkss.pr_appendtbl(l_err_code, l_err_param); -- FCC73ITR1 SFR 319 : moved
out of if condition
P_TYP_ERR := OVPKSS.GL_TBLERROR; -- FCC73ITR1 SFR 319
P_RET := -1;
RETURN FALSE;
END IF;
--
***********************************************************************************
*******
--FCUBS 10.1 Switch Interface Tuning Changes starts
--Select is not requird.
/*SELECT *
INTO l_ty_retail_teller
FROM detbs_rtl_teller
WHERE xref = l_ty_retail_teller.xref;
*/

IF P_TBL_NODE_REC.EXISTS('Cheque-Details') --FCUBS10.0LOT3 changed from


'MCKDETS_FJB'
THEN
DBG('going to call fn_upload_mckdetais....');
DBG('l_ty_mckdetails.ULT_BENEFICIARY1 4' ||
L_TY_MCKDETAILS.ULT_BENEFICIARY1);
IF NOT FN_UPLOAD_MCKDETAIS(L_TY_RETAIL_TELLER, L_TY_MCKDETAILS, P_RET) THEN
DBG('E', 'Failed while calling fn_upload_mckdetais');
P_RET := -1;
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN FALSE;
END IF;
END IF;
--
***********************************************************************************
*******
-- MBU22 SFR#163 moved the code above fn_what_to_do
/*--MBU22 - 11.2.0.1.0BOMLAE Mandatory Voucher Narrative Start
IF NOT
ddpks_upload_contract_create.fn_check_mandatory_voucher(p_ty_retailtlr_upd.txn_bran
ch,
p_ty_retailtlr_upd.txn_acc ,
p_ty_retailtlr_upd.trn_ref_no,
p_upl_udf_det,
l_err_code,
l_err_param) then
ovpks.pr_appendtbl(l_err_code, l_err_param);
dbg('Failed in cgpks_upload_cg_create while validating the Cheque Details
:');
RETURN FALSE;
END IF;
IF NOT
ddpks_upload_contract_create.fn_check_mandatory_voucher(p_ty_retailtlr_upd.ofs_bran
ch,
p_ty_retailtlr_upd.ofs_acc ,
p_ty_retailtlr_upd.trn_ref_no,
p_upl_udf_det,
l_err_code,
l_err_param) then
ovpks.pr_appendtbl(l_err_code, l_err_param);
dbg('Failed in cgpks_upload_cg_create while validating the Cheque Details
:');
RETURN FALSE;
END IF;
--MBU22 - 11.2.0.1.0BOMLAE Mandatory Voucher Narrative End*/
IF NOT FN_UPLOAD_SUBSYSTEMS(L_TY_RETAIL_TELLER,
P_TBL_CHGDETS,
P_UPL_MIS_DET,
P_UPL_UDF_DET,
L_TY_MCKDETAILS,
L_TY_MSG_DETS,
P_TBL_NODE_REC,
P_RET) THEN
DBG('E', 'Error while calling fn_upload_subsystems');
P_RET := -1;
P_TYP_ERR := OVPKSS.GL_TBLERROR; -- SFR ###
RETURN FALSE;
END IF;
--NEFT/RTGS CHANGES 1405
-- AEDMSQFCC0976_1 Changes start
BEGIN
DBG('Inside select for RT lending product flag');
SELECT NVL(PC_TXN, 'N')
INTO L_PC_TXN
FROM DETM_RT_PREFERENCES
WHERE PRODUCT_CODE = P_TY_RETAILTLR_UPD.PRODUCT_CODE;
EXCEPTION
WHEN OTHERS THEN
DBG(' fails in select for RT lending product flag' || SQLERRM);
END;

IF L_PC_TXN = 'Y' THEN


-- AEDMSQFCC0976_1 Changes end
IF NOT FN_UPLOAD_PC(L_TY_RETAIL_TELLER --sank
,
P_UPL_PCDETAILS,
P_RET)

THEN
DBG('E', 'Error while calling fn_upload_pc');
P_RET := -1;
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN FALSE;
END IF;
-- AEDMSQFCC0976_1 Changes start
END IF;
-- AEDMSQFCC0976_1 Changes end
--NEFT/RTGS CHANGES 1405
--
***********************************************************************************
*******
DBG('l_auth_status===>' || L_AUTH_STATUS);
GLOBAL.PR_SET_AUTO_AUTH_STATUS(GLOBAL.USER_ID,
'DEGRTTLR',
GLOBAL.CURRENT_BRANCH);
DBG('done th dope');

-- MBU22 - 11.2.0.1.0BOMLAE? changes start


-- 1. << validating till amount>>
IF P_TY_RETAILTLR_UPD.SCODE = 'FLEXBRANCH' THEN
DBG('gwpks_util.pkg_func ' || GWPKS_UTIL.PKG_FUNC);
SELECT COUNT(*)
INTO L_TXN_CNT
FROM CSTMS_BRANCH_FUNC_DEFN
WHERE FUNCTIONID = GWPKS_UTIL.PKG_FUNC
AND TXNCATEGORY = 'C'
AND 'I' IN (TXN_LEG_CASH, OFS_LEG_CASH);

IF L_TXN_CNT > 0 THEN


IF NOT FN_VALIDATE_TILL_LIMIT(GLOBAL.CURRENT_BRANCH,
GWPKS_UTIL.G_TILL_ID,
L_ERR_CODE) THEN
DBG('Error in fn_validate_till_limit ' || L_ERR_CODE);
P_RET := -1;
END IF;
END IF;

--AEDMBU UAT1 SFR#DEFLT00007527 Changes Starts


DBG('before in fn_validate_User_Input_limit ' || L_ERR_CODE);
IF NOT FN_VALIDATE_USER_INPUT_LIMIT(GLOBAL.USER_ID,
P_TY_RETAILTLR_UPD.TXN_CCY,
NVL(P_TY_RETAILTLR_UPD.TXN_AMOUNT,
P_TY_RETAILTLR_UPD.OFS_AMOUNT),
GLOBAL.CURRENT_BRANCH,
L_ERR_CODE) THEN
IF (L_ERR_CODE = 'DE-MLT42') THEN
DBG('user input limit failed fn_validate_User_Input_limit ' ||
L_ERR_CODE);
ELSE
P_RET := -1;
DBG('error occured ' || L_ERR_CODE);
END IF;
END IF;
--AEDMBU UAT1 SFR#DEFLT00007527 Changes ends
DBG('after in fn_validate_User_Input_limit ' || L_ERR_CODE);

-- 2. <validating for not to do any transaction in HO account


IF P_TY_RETAILTLR_UPD.TXN_BRANCH = GLOBAL.HEAD_OFFICE AND
GLOBAL.CURRENT_BRANCH <> GLOBAL.HEAD_OFFICE THEN
OVPKSS.PR_APPENDTBL('SM-HOACC', P_TY_RETAILTLR_UPD.TXN_ACC);
DBG('Head office account' || P_TY_RETAILTLR_UPD.TXN_ACC);
END IF;

--- FCUBS_11.2.0.0.0_$BOMLAE_R16 Branch Requirements changes starts


IF GWPKS_UTIL.PKG_FUNC IN ('1401', '1001', '6501', 'LOCH') AND
GWPKS_UTIL.PKG_ACTTYPE = 'SAVEAUTOAUTH' THEN
BEGIN
SELECT TOT_CHG_IN_TCY
INTO L_TOT_CHG
FROM DETB_RTL_TELLER
WHERE XREF = P_TY_RETAILTLR_UPD.XREF;
END;
DBG('AT LAST L_TOT_CHG...' || L_TOT_CHG);
IF L_TOT_CHG > 0 THEN
DBG('AT LAST L_TOT_CHG...' || L_TOT_CHG);
OVPKSS.PR_APPENDTBL('CHGAPP-001', NULL);
END IF;
END IF;
--FCUBS_11.2.0.0.0_$BOMLAE_R16 Branch Requirements changes ends
END IF;
-- MBU22 - 11.2.0.1.0BOMLAE?<<CHANGES END>>

----Changes FCUBS_11 2 0 0 0$BOMLAE_R22_10332_T24, CR 10332_T24 Special deal


starts

SELECT T.AUTH_STAT
INTO L_AUTH_STATUS
FROM DETB_RTL_TELLER T
WHERE T.TRN_REF_NO = L_TY_RETAIL_TELLER.TRN_REF_NO;

DBG(' current l_auth_status' || L_AUTH_STATUS);

IF --L_AUTH_STATUS = 'A' AND


(((GWPKS_UTIL.PKG_FUNC IN
('1408', '1401', '8207', '1008', '1001', '8206') OR
UPPER(P_TY_RETAILTLR_UPD.PRODUCT_CODE) IN
('MSCC', 'CHDP', 'FXPA', 'MSCC', 'CHDP', 'FXPA')) AND
(GWPKS_UTIL.PKG_ACTTYPE = 'SAVEAUTOAUTH' OR
P_SOURCE NOT IN ('FLEXBRANCH', 'FLEXCUBE'))) OR
P_SOURCE NOT IN ('FLEXBRANCH', 'FLEXCUBE')) AND
TRIM(P_TY_RETAILTLR_UPD.NEGOTIATION_REF_NO) IS NOT NULL THEN
DBG('\Coming here to check for the MOL txn');

-- Allow only for UAE region


--4903 changes starts
/*BEGIN
select PARAM_VAL
into l_country_code
from cstb_param
where param_name = 'COUNTRY_CODE';
EXCEPTION
WHEN OTHERS THEN
l_country_code := NULL;
END;

IF l_country_code IS NOT NULL AND l_country_code = 'AE' THEN*/


--4903 changes ends
IF INSTR(NVL(CSPKS_OS_PARAM.GET_PARAM_VAL('T24_DEAL_CNTRY'), '~**~'),
NVL(CSPKS_OS_PARAM.GET_PARAM_VAL('COUNTRY_CODE'),
GLOBAL.COUNTRY_CODE)) > 0 THEN
IF NOT FN_INSERT_DEAL_UTIL(P_TY_RETAILTLR_UPD,
P_RET,
P_TYP_ERR,
P_SOURCE,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('Failed in fn_insert_deal_util');
OVPKS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;
END IF;
END IF;

----Changes FCUBS_11 2 0 0 0$BOMLAE_R22_10332_T24, CR 10332_T24 Special deal


ends

--madhu starts
begin
SELECT count(1)
into l_tcr_count
from FBTB_TCR_TILL_DENOM
WHERE trn_ref_no = L_TY_RETAIL_TELLER.XREF
and action_CODE in ('SUBMIT', 'FINISH');
end;
DBG('FUNCTION ID >> ' || GWPKS_UTIL.PKG_FUNC);
DBG('l_tcr_count >> ' || l_tcr_count);
if l_tcr_count > 0 and
GWPKS_UTIL.PKG_FUNC IN ('1002', '1402', '1012', '8336', 'CRCS') then

for x in 1 .. Ovpkss.Gl_Tblerror.COUNT loop


L_TCR_ERR_CODE := Ovpkss.Gl_Tblerror(x).Err_Code;
L_TCR_ERR_TYPE := Ovpkss.Fn_Gettype(L_TCR_ERR_CODE);

IF (L_TCR_ERR_TYPE IN ('O', 'A', 'D')) THEN


Ovpkss.Gl_Tblerror.DELETE(X);
END IF;
end loop;

end if;
--madhu ends

IF NOT CSPKSS_UPLOAD.FN_WHAT_TO_DO(P_SOURCE,
'RT',
L_WHAT_TO_DO,
L_AUTH_STATUS,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('cspkss_upload.fn_what_to_do returned FALSE');
--ovpkss.pr_appendtbl(l_err_code, l_err_param || '');
RETURN FALSE;
END IF;
DBG('l_what_to_do===>' || L_WHAT_TO_DO);
DBG('l_auth_status===>' || L_AUTH_STATUS);
P_AUTH_STAT := L_AUTH_STATUS;

IF (L_WHAT_TO_DO = 'R') THEN


DBG('What to do has returned Reject Status. Hence exiting..');
RETURN FALSE;

ELSIF L_WHAT_TO_DO = 'M' THEN


RAISE OVERRIDE_EXCEPTION;
END IF;

--FC11.0 SFR 1291 Start


IF L_RT_LEND_FLAG = 'Y' THEN
P_AUTH_STAT := 'A';
END IF;
--FC11.0 SFR 1291 End
--
***********************************************************************************
*******
--FCUBS 10.1 Switch Interface Tuning Changes starts
/* dbg('Successfully completed upload....now inserting record log');
l_key := '~' || 'DETB_RTL_TELLER~' || l_ty_retail_teller.trn_ref_no || '~';
IF NOT fn_insert_record_log(l_key,
1,
l_ty_retail_teller.branch_code,
'DEGRTTLR',
'DETBS_RTL_TELLER',
global.user_id,
to_date(to_char(global.application_date,
'DD-MON-YYYY') || ' ' ||
to_char(fn_sysdate, 'HH24:MI:SS'),
'DD-MON-YYYY HH24:MI:SS'),
NULL,
NULL,
'N',
'U',
NULL,
l_ty_retail_teller,
p_ret)
THEN
dbg('E', 'Error while calling fn_insert_record_log');
p_ret := -1;
p_typ_err := ovpkss.gl_tblError; -- FCC73ITR2 SFR 58
RETURN FALSE;
END IF; */
--FCUBS 10.1 Switch Interface Tuning Changes ends
-- FCC73ITR2 SFR 58
--
***********************************************************************************
*******
/*IF l_auth_status = 'A'
THEN
dbg('Auto Auth Starts...');
l_ty_retail_teller.checker_id := l_ty_retail_teller.maker_id; -- FCC73ITR2
SFR 58
IF NOT depkss_rtl_teller.fn_rtl_teller_auth(l_ty_retail_teller.branch_code,
l_ty_retail_teller.trn_ref_no,
l_ty_retail_teller.checker_id,
global.lcy,
l_err_code,
l_err_param)
THEN
dbg('Auth returned false ' || l_err_code);
p_ret := -1;
ovpkss.pr_appendTbl(l_err_code, l_err_param);
p_typ_err := ovpkss.gl_tblError;
RETURN FALSE;
END IF;
--
***********************************************************************************
*******
-- FCC73ITR2 SFR 58
dbg('Successfully authorized transaction.....now updating log.');
IF NOT fn_update_record_log(l_key,
1,
l_ty_retail_teller.branch_code,
'DEGRTTLR',
'DETBS_RTL_TELLER',
NULL,
NULL,
global.user_id,
to_date(to_char(global.application_date,
'DD-MON-YYYY') || ' ' ||
to_char(fn_sysdate, 'HH24:MI:SS'),
'DD-MON-YYYY HH24:MI:SS'),
'N',
'A',
NULL,
p_ret)
THEN
dbg('E', 'Error while calling fn_insert_record_log');
p_ret := -1;
RETURN FALSE;
END IF;
-- FCC73ITR2 SFR 58
END IF; */ --now its in operation handler
--
***********************************************************************************
*******
DBG('Successfully finished fn_upload....');
P_TYP_ERR := OVPKSS.GL_TBLERROR;
P_RET := 0;
RETURN TRUE;
EXCEPTION

WHEN OVERRIDE_EXCEPTION THEN


DBG('in override_exception');
P_OVERRIDE_FLAG := 'Y';
RETURN TRUE;
WHEN OTHERS THEN
DBG('E', 'Failed in function fn_upload with error : ' || SQLERRM);
dbg('Failing for ' || dbms_utility.format_error_backtrace);
P_RET := -1;
RETURN FALSE;
END FN_UPLOAD;

-----------------------------------------------------------------------------------
--------------

--11.1 web branch changes starts

FUNCTION FN_UPLOAD_SDDETAILS(P_TY_RTUPLD IN OUT TYP_RETAILTELLERUPLD_REC,


P_SOURCE IN VARCHAR2,
P_OVERRIDE_FLAG OUT CHAR,
P_AUTH_STAT OUT CHAR,
P_RET IN OUT NUMBER,
P_TYP_ERR IN OUT OVPKSS.TBL_ERROR)
RETURN BOOLEAN IS

----------------------------
L_ERR_CODE VARCHAR2(200);
L_ERR_PARAM VARCHAR2(2000);
L_SERIAL_USELESS VARCHAR2(10);
L_STATUS_ON_SAVE COTMS_SOURCE_PREF.UPLOADED_STATUS%TYPE;
L_ACTION_ON_EXCEPTION COTMS_SOURCE_PREF.ON_ERROR%TYPE;
L_ACTION_ON_OVERRIDE COTMS_SOURCE_PREF.ON_OVERRIDE%TYPE;
L_KEY STTBS_RECORD_LOG.KEY_ID%TYPE;

L_WHAT_TO_DO CHAR(1);
L_AUTH_STATUS CHAR(1);
OVERRIDE_EXCEPTION EXCEPTION;
FAILURE_EXCEPTION EXCEPTION;
L_TY_RETAIL_TELLER DETB_RTL_TELLER%ROWTYPE;
L_TY_MSG_DETS CSTB_ARC_SETTLE%ROWTYPE;
L_TY_MCKDETAILS ISVW_MCK_DETAILS%ROWTYPE;

L_DLDPAMNT DLPKS_DLDPAMNT_MAIN.TY_DLDPAMNT;
L_PREV_DLDPAMNT DLPKS_DLDPAMNT_MAIN.TY_DLDPAMNT;
L_WRK_DLDPAMNT DLPKS_DLDPAMNT_MAIN.TY_DLDPAMNT;
L_MULTI_TRIP_ID VARCHAR2(20);
L_SOURCE_OPERATION VARCHAR2(50);

BEGIN
DBG('Inside fn_uploadSDdetails.......');
---------------------
-- ovpkss.pr_initerrtbl;
---------------------

L_DLDPAMNT.V_DLVWS_CONTRACT_PAYMENT :=
P_TY_RTUPLD.TY_SAFEDEPODETAILS.TY_CONTRACT_PAY;
L_DLDPAMNT.V_DLVWS_PAYMENT_SUMMARY :=
P_TY_RTUPLD.TY_SAFEDEPODETAILS.TY_PAY_SUMMARY;
L_WRK_DLDPAMNT := L_DLDPAMNT;

DBG('>> bf4 call to dlpks_dldpamnt_utils.fn_process...for new...');


IF NOT DLPKS_DLDPAMNT_UTILS.FN_PROCESS(P_SOURCE,
L_SOURCE_OPERATION,
'NEW',
L_MULTI_TRIP_ID,
L_DLDPAMNT,
L_PREV_DLDPAMNT,
L_WRK_DLDPAMNT,
L_ERR_CODE,
L_ERR_PARAM)

THEN
DBG('Failed while calling dlpks_dldpamnt_Services.Fn_Upload_Db ');
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;

DBG('>> bf4 call to dlpks_dldpamnt_utils.fn_process...for auth...');


IF NOT DLPKS_DLDPAMNT_UTILS.FN_PROCESS(P_SOURCE,
L_SOURCE_OPERATION,
'AUTH',
L_MULTI_TRIP_ID,
L_DLDPAMNT,
L_PREV_DLDPAMNT,
L_WRK_DLDPAMNT,
L_ERR_CODE,
L_ERR_PARAM)
THEN
DBG('Failed while calling dlpks_dldpamnt_Services.Fn_Upload_Db ');
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;

DBG('>> bf4 call to DLpks_Batch.fn_insertpayment....');


IF NOT
DLPKS_BATCH.FN_INSERTPAYMENT(L_WRK_DLDPAMNT.V_DLVWS_CONTRACT_PAYMENT.FCCREF,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('Failed while calling DLpks_Batch.fn_insertpayment ');
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;

DBG('updating sd refno in detb rtl tlr:: ' ||


L_WRK_DLDPAMNT.V_DLVWS_CONTRACT_PAYMENT.FCCREF);
UPDATE DETB_RTL_TELLER
SET SDB_REF_NO = L_WRK_DLDPAMNT.V_DLVWS_CONTRACT_PAYMENT.FCCREF
WHERE TRN_REF_NO = P_TY_RTUPLD.TY_UPLD_RTL_TELLER.TRN_REF_NO;

DBG('Successfully finished fn_upload_SDdetails....');


P_TYP_ERR := OVPKSS.GL_TBLERROR;
P_RET := 0;
RETURN TRUE;
EXCEPTION

WHEN OVERRIDE_EXCEPTION THEN


DBG('in override_exception');
P_OVERRIDE_FLAG := 'Y';
RETURN TRUE;
WHEN OTHERS THEN
DBG('E',
'Failed in function fn_upload_SDdetails with error : ' || SQLERRM);
P_RET := -1;
RETURN FALSE;
END FN_UPLOAD_SDDETAILS;

--11.1 web branch changes ends

---------------------------------------------------------------
FUNCTION FN_VALIDATE_REVERSAL_REQ(P_XREF IN OUT VARCHAR2,
P_FCCREF IN OUT VARCHAR2) RETURN BOOLEAN IS
L_ERR_CODE VARCHAR2(50);
L_ERR_PARAM VARCHAR2(500);
L_END_OF_INPUT STTMS_BRANCH.END_OF_INPUT%TYPE;
L_RECORD_STAT VARCHAR2(1);
L_AUTH_STAT VARCHAR2(1);
L_TRN_DT DETB_RTL_TELLER.TRN_DT%TYPE; -- VA Enhancements Changes Added
L_VIR_ACC_NO DETB_RTL_TELLER.VIR_ACC_NO%TYPE; -- VA Enhancements Changes
Added
BEGIN
DBG('Inside fn_validate_reversal_req.......');
---------------------------
BEGIN
SELECT END_OF_INPUT
INTO L_END_OF_INPUT
FROM STTMS_BRANCH
WHERE BRANCH_CODE = GLOBAL.CURRENT_BRANCH;
EXCEPTION
WHEN OTHERS THEN
DBG('Unexpected failure while validating then branch status...');
OVPKSS.PR_APPENDTBL('GW-RTL-005', NULL);
RETURN FALSE;
END;

/* IF l_end_of_input <> 'N'


THEN
dbg('Contract Auth/Delete/Reverse are not Allowed as Branch $1 is not in
Transaction Input Status');
ovpkss.pr_appendtbl('IF-MSC030', global.current_branch || '~');
RETURN FALSE;
END IF; */ -- FC 10.2 24X7 ITR2 CHANGES
--FCUBS10.0LOT3 starts

BEGIN
SELECT RECORD_STAT, AUTH_STAT, TRN_DT, VIR_ACC_NO -- VA Enhancements Changes
Added trn_dt, vir_acc_no
INTO L_RECORD_STAT, L_AUTH_STAT, L_TRN_DT, L_VIR_ACC_NO -- VA Enhancements
Changes Added
FROM DETBS_RTL_TELLER
WHERE TRN_REF_NO = P_FCCREF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
OVPKSS.PR_APPENDTBL('WB-TXN-001', NULL);
RETURN FALSE;
END;

IF L_RECORD_STAT = 'V' THEN


OVPKSS.PR_APPENDTBL('GW-REV-04', NULL);
RETURN FALSE;
END IF;

IF L_AUTH_STAT = 'U' THEN


OVPKSS.PR_APPENDTBL('GW-REV-03', NULL);
RETURN FALSE;
END IF;
-- VA Enhancements Changes Added Starts
IF GWPKS_UTIL.PKG_FUNC IN ('1006', '1401', '1408') THEN
IF L_TRN_DT <> GLOBAL.APPLICATION_DATE AND L_VIR_ACC_NO IS NOT NULL THEN
OVPKSS.PR_APPENDTBL('GW-REV-05', NULL);
RETURN FALSE;
END IF;
END IF;
-- VA Enhancements Changes Added Ends
DBG('Successfully finished fn_validate_reversal_req.......');
RETURN TRUE;

EXCEPTION
WHEN OTHERS THEN
DBG('Unexpected failure while validating the reversal request...');
OVPKSS.PR_APPENDTBL('GW-RTL-005', NULL);
RETURN FALSE;
END FN_VALIDATE_REVERSAL_REQ;
FUNCTION FN_PARTIALREVERSE(P_XREF IN OUT VARCHAR2,
P_FCCREF IN OUT VARCHAR2,
P_REVAMOUNT IN OUT VARCHAR2,
P_SOURCE IN VARCHAR2,
P_OVERRIDE_FLAG OUT VARCHAR2,
P_AUTO_AUTH_FLAG OUT VARCHAR2,
P_TYP_ERR IN OUT OVPKSS.TBL_ERROR)
RETURN BOOLEAN IS
L_ERR_CODE VARCHAR2(50);
L_ERR_PARAM VARCHAR2(500);
L_WHAT_TO_DO CHAR(1);
L_AUTH_STATUS CHAR(1);
OVERRIDE_EXCEPTION EXCEPTION;
FAILURE_EXCEPTION EXCEPTION;
L_DETB_RTL_TELLER_REC DETBS_RTL_TELLER%ROWTYPE;
L_DAY_EXCH_RATE CYTMS_RATES.MID_RATE%TYPE;
L_RATEFLAG NUMBER;
-- AEDMBU UAT1 DEFLT00008365 Changes start
L_TXNACC VARCHAR2(20);
P_BAL NUMBER;
-- AEDMBU UAT1 DEFLT00008365 Changes END
BEGIN
DBG('Inside fn_partialreverse.......');
---------------------
OVPKSS.PR_INITERRTBL;
SAVEPOINT SP_BEFORE_PARTREV;
---------------------

IF NOT FN_RESOLVE_REF(P_XREF, P_FCCREF, L_ERR_CODE, L_ERR_PARAM) THEN


DBG('failed in fn_resolve_ref');
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;
---------------------
-- AEDMBU UAT1 DEFLT00008365 Changes start
BEGIN
DBG('reverse check' || GWPKS_UTIL.PKG_ACTTYPE || '~' ||
CSPKS_REQ_GLOBAL.G_HEADER('FUNCTIONID'));
IF GWPKS_UTIL.PKG_ACTTYPE IN ('REVERSE') AND
CSPKS_REQ_GLOBAL.G_HEADER('FUNCTIONID') IN ('1401') THEN
SELECT DISTINCT (TXN_ACC)
INTO L_TXNACC
FROM DETBS_RTL_TELLER
WHERE XREF = P_XREF;
IF ACPKS_MISC.FN_GETAVLBAL(GLOBAL.CURRENT_BRANCH, L_TXNACC, P_BAL) THEN
DBG('balance is' || P_BAL);
IF P_BAL <= 0 THEN
OVPKS.PR_APPENDTBL('AC-REV-IBL', NULL);
END IF;
ELSE
DBG('faild in getting the balance' || SQLERRM);
END IF;
END IF;
EXCEPTION
WHEN OTHERS THEN
DBG('IN REVERSL AUTH: WENT TO EXCPETION');
END;
-- AEDMBU UAT1 DEFLT00008365 Changes end

--------------------
IF NOT FN_VALIDATE_REVERSAL_REQ(P_XREF, P_FCCREF) THEN
DBG('E', 'Failed while calling fn_validate_reversal_req.');
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN FALSE;
END IF;
---------------------
--Step1 - Initialising the teller type values for Step 3.

SELECT *
INTO L_DETB_RTL_TELLER_REC
FROM DETB_RTL_TELLER
WHERE TRN_REF_NO = P_FCCREF;

IF NOT CYPKS.FN_GETRATE(L_DETB_RTL_TELLER_REC.BRANCH_CODE,
L_DETB_RTL_TELLER_REC.TXN_CCY,
L_DETB_RTL_TELLER_REC.OFS_CCY,
L_DAY_EXCH_RATE,
L_RATEFLAG,
L_ERR_CODE) THEN
DBG('failed in fn_resolve_ref');
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;

DBG('guava The days exch rate is:' || L_DETB_RTL_TELLER_REC.TXN_CCY ||


' to ' || L_DETB_RTL_TELLER_REC.OFS_CCY || ' : ' ||
L_DAY_EXCH_RATE);

L_DETB_RTL_TELLER_REC.TXN_AMOUNT := L_DETB_RTL_TELLER_REC.TXN_AMOUNT -
P_REVAMOUNT;
L_DETB_RTL_TELLER_REC.OFS_AMOUNT := L_DETB_RTL_TELLER_REC.OFS_AMOUNT -
(P_REVAMOUNT * L_DAY_EXCH_RATE);
L_DETB_RTL_TELLER_REC.LCY_AMOUNT := (L_DETB_RTL_TELLER_REC.TXN_AMOUNT *
L_DAY_EXCH_RATE);
---------------------
--Step 2 - Full reversal of existing contract
IF NOT DEPKSS_RTL_TELLER.FN_REVERSE(P_FCCREF, L_ERR_CODE, L_ERR_PARAM) THEN
ROLLBACK TO SP_BEFORE_PARTREV;
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN FALSE;
END IF;
---------------------
--Step 3 - Initiation of NEW contract with same FCCREF for the remaining amount
IF NOT DEPKS_RTL_TELLER.FN_SAVEPARTIALREV(L_DETB_RTL_TELLER_REC,
L_ERR_CODE,
L_ERR_PARAM) THEN
ROLLBACK TO SP_BEFORE_PARTREV;
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN FALSE;
END IF;
---------------------
IF NOT CSPKSS_UPLOAD.FN_WHAT_TO_DO(P_SOURCE,
'RT',
L_WHAT_TO_DO,
L_AUTH_STATUS,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('cspkss_upload.fn_what_to_do returned FALSE');
--ovpkss.pr_appendtbl(l_err_code, l_err_param || '');
RETURN FALSE;
END IF;
P_AUTO_AUTH_FLAG := L_AUTH_STATUS;
DBG('l_auth_status :' || P_AUTO_AUTH_FLAG);
DBG('l_what_to_do :' || P_AUTO_AUTH_FLAG);
IF (L_WHAT_TO_DO = 'R') THEN
DBG('What to do has returned Reject Status. Hence exiting..');
RETURN FALSE;

ELSIF L_WHAT_TO_DO = 'M' THEN


RAISE OVERRIDE_EXCEPTION;
END IF;

---------------------
DBG('Successfully finished fn_partialreverse....');
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN TRUE;
EXCEPTION
WHEN OVERRIDE_EXCEPTION THEN
DBG('in override_exception');
P_OVERRIDE_FLAG := 'Y';
RETURN TRUE;
WHEN OTHERS THEN
DBG('E',
'Exception caught in function fn_reverse with error : ' ||
SQLERRM);
ROLLBACK TO SP_BEFORE_REV;
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN FALSE;

END FN_PARTIALREVERSE;

--~~~~~~~~~~~~~~~~~~~~~~~~~~

FUNCTION FN_REVERSE(P_XREF IN OUT VARCHAR2,


P_FCCREF IN OUT VARCHAR2,
P_SOURCE IN VARCHAR2,
P_OVERRIDE_FLAG OUT VARCHAR2,
P_AUTO_AUTH_FLAG OUT VARCHAR2,
P_TYP_ERR IN OUT OVPKSS.TBL_ERROR)
RETURN BOOLEAN IS
L_ERR_CODE VARCHAR2(50);
L_ERR_PARAM VARCHAR2(500);
L_WHAT_TO_DO CHAR(1);
L_AUTH_STATUS CHAR(1);
OVERRIDE_EXCEPTION EXCEPTION;
FAILURE_EXCEPTION EXCEPTION;
L_TRN_DT DATE; --AEDMBU UATB DEFLT00010952 Changes

BEGIN
DBG('Inside fn_reverse.......');
---------------------
OVPKSS.PR_INITERRTBL;
SAVEPOINT SP_BEFORE_REV;
---------------------
IF NOT FN_RESOLVE_REF(P_XREF, P_FCCREF, L_ERR_CODE, L_ERR_PARAM) THEN
DBG('failed in fn_resolve_ref');
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;

IF NOT FN_VALIDATE_REVERSAL_REQ(P_XREF, P_FCCREF) THEN


DBG('E', 'Failed while calling fn_validate_reversal_req.');
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN FALSE;
END IF;
---------------------
--AEDMBU UATB DEFLT00010952 Changes start
IF NVL(P_SOURCE, 'XXX') <> 'FLEXSWITCH' --prod-060 ADDED IF CONDITION.
THEN
BEGIN
SELECT TRN_DT
INTO L_TRN_DT
FROM DETBS_RTL_TELLER
WHERE XREF = P_XREF;
DBG('transaction date ' || L_TRN_DT);
IF L_TRN_DT < GLOBAL.APPLICATION_DATE THEN
OVPKS.PR_APPENDTBL('DE-REV01', NULL);
RETURN FALSE;
END IF;
EXCEPTION
WHEN OTHERS THEN
DBG('failed in reversal for back dated transactions');
END;
END IF; --prod-060 ADDED
--AEDMBU UATB DEFLT00010952 Changes end

IF NOT DEPKSS_RTL_TELLER.FN_REVERSE(P_FCCREF, L_ERR_CODE, L_ERR_PARAM) THEN


ROLLBACK TO SP_BEFORE_REV;
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN FALSE;
END IF;

IF NOT CSPKSS_UPLOAD.FN_WHAT_TO_DO(P_SOURCE,
'RT',
L_WHAT_TO_DO,
L_AUTH_STATUS,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('cspkss_upload.fn_what_to_do returned FALSE');
--ovpkss.pr_appendtbl(l_err_code, l_err_param || '');
RETURN FALSE;
END IF;
P_AUTO_AUTH_FLAG := L_AUTH_STATUS;
DBG('l_auth_status :' || P_AUTO_AUTH_FLAG);
DBG('l_what_to_do :' || L_WHAT_TO_DO);

--11.1 reject changes


DBG('GWPKS_UTIL.G_REJECTFLAG => ' || GWPKS_UTIL.G_REJECTFLAG);

IF (L_WHAT_TO_DO = 'R') THEN


DBG('What to do has returned Reject Status. Hence exiting..');
RETURN FALSE;

--11.1 reject changes ELSIF l_what_to_do = 'M'


ELSIF L_WHAT_TO_DO = 'M' AND NVL(GWPKS_UTIL.G_REJECTFLAG, 'N') <> 'Y' THEN
RAISE OVERRIDE_EXCEPTION;
END IF;

---------------------
DBG('Successfully finished fn_reverse....');
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN TRUE;
EXCEPTION
WHEN OVERRIDE_EXCEPTION THEN
DBG('in override_exception');
P_OVERRIDE_FLAG := 'Y';
RETURN TRUE;
WHEN OTHERS THEN
DBG('E',
'Exception caught in function fn_reverse with error : ' ||
SQLERRM);
ROLLBACK TO SP_BEFORE_REV;
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN FALSE;
END FN_REVERSE;
---------------------------------------------------------------
-- FCC73ITR1 SFR 336
FUNCTION FN_VALIDATE_AUTHORIZATION_REQ(P_SOURCE IN VARCHAR2 -- FCC73ITR1 SFR 471
,
P_XREF IN OUT VARCHAR2 -- FCC73ITR2 SFR
58
,
P_FCCREF IN OUT VARCHAR2 -- FCC73ITR2 SFR
58
,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS
L_ERR_CODE VARCHAR2(50);
L_ERR_PARAM VARCHAR2(500);
L_END_OF_INPUT STTMS_BRANCH.END_OF_INPUT%TYPE;
L_AUTH_STAT DETBS_RTL_TELLER.AUTH_STAT%TYPE;
L_MAKER_ID DETBS_RTL_TELLER.MAKER_ID%TYPE;

BEGIN

---------------------------

BEGIN
SELECT END_OF_INPUT
INTO L_END_OF_INPUT
FROM STTMS_BRANCH
WHERE BRANCH_CODE = GLOBAL.CURRENT_BRANCH;
EXCEPTION
WHEN OTHERS THEN
DBG('Unexpected failure while validating then branch status...');
OVPKSS.PR_APPENDTBL('GW-RTL-005', NULL);
P_RET := -1;
RETURN FALSE;
END;

IF L_END_OF_INPUT <> 'N' THEN


DBG('Contract Auth/Delete/Reverse are not Allowed as Branch $1 is not in
Transaction Input Status');
OVPKSS.PR_APPENDTBL('IF-MSC030', GLOBAL.CURRENT_BRANCH || '~');
RETURN FALSE;
END IF;

--FCUBS10.0LOT3 starts
IF NOT FN_RESOLVE_REF(P_XREF, P_FCCREF, L_ERR_CODE, L_ERR_PARAM) THEN
DBG('failed in fn_resolve_ref');
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
RETURN FALSE;
END IF;

BEGIN
SELECT MAKER_ID, AUTH_STAT
INTO L_MAKER_ID, L_AUTH_STAT
FROM DETBS_RTL_TELLER
WHERE TRN_REF_NO = P_FCCREF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
OVPKSS.PR_APPENDTBL('WB-TXN-001', NULL);
P_RET := -1;
RETURN FALSE;
END;
DBG('l_maker_id :' || L_MAKER_ID);
DBG('l_auth_stat :' || L_AUTH_STAT);
IF L_MAKER_ID = GLOBAL.USER_ID THEN
OVPKSS.PR_APPENDTBL('GW-AUT-03', NULL);
RETURN FALSE;
END IF;

IF L_AUTH_STAT = 'A' THEN


OVPKSS.PR_APPENDTBL('GW-AUT-02', NULL);
RETURN FALSE;
END IF;

DBG('Successfully finished fn_validate_reversal_req.......');


RETURN TRUE;

EXCEPTION
WHEN OTHERS THEN
DBG('Unexpected failure while validating the reversal request...');
OVPKSS.PR_APPENDTBL('GW-RTL-005', NULL);
P_RET := -1;
RETURN FALSE;
END FN_VALIDATE_AUTHORIZATION_REQ;

--~~~~~~~~~~~~~~~~~~~~~~~~~~

FUNCTION FN_AUTHORIZE(P_SOURCE IN VARCHAR2 -- FCC73ITR1 SFR 471


,
P_XREF IN OUT VARCHAR2 -- FCC73ITR2 SFR 58
,
P_FCCREF IN OUT VARCHAR2 -- FCC73ITR2 SFR 58
,
P_RET IN OUT NUMBER,
P_TYP_ERR IN OUT OVPKSS.TBL_ERROR) RETURN BOOLEAN IS
L_ERR_CODE VARCHAR2(50);
L_ERR_PARAM VARCHAR2(500);
L_DETB_RTL_TLR DETBS_RTL_TELLER%ROWTYPE;
L_KEY STTBS_RECORD_LOG.KEY_ID%TYPE; -- FCC73ITR2 SFR 58
BEGIN
DBG('Inside fn_authorize.......');
---------------------
OVPKSS.PR_INITERRTBL;
SAVEPOINT SP_BEFORE_REV;
---------------------

IF NOT FN_VALIDATE_AUTHORIZATION_REQ(P_SOURCE, -- FCC73ITR1 SFR 471


P_XREF,
P_FCCREF,
P_RET) THEN
DBG('E', 'Failed while calling fn_validate_reversal_req.');
P_RET := -1;
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN FALSE;
END IF;
---------------------
DBG('Authorization Starts...');
IF NOT DEPKSS_RTL_TELLER.FN_RTL_TELLER_AUTH(L_DETB_RTL_TLR.BRANCH_CODE,
P_FCCREF,
NVL(GWPKS_UTIL.G_CHECKERID,
GLOBAL.USER_ID) --FCUBS11.1
Changes SFR#3808
,
GLOBAL.LCY,
L_ERR_CODE,
L_ERR_PARAM) THEN
DBG('Auth returned false ' || L_ERR_CODE);
P_RET := -1;
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN FALSE;
END IF;
---------------------

-- FCC73ITR2 SFR 58
DBG('Successfully authorized transaction.....now updating log.');
L_KEY := '~' || 'DETB_RTL_TELLER~' || L_DETB_RTL_TLR.TRN_REF_NO || '~';
IF NOT FN_UPDATE_RECORD_LOG(L_KEY,
1,
L_DETB_RTL_TLR.BRANCH_CODE,
'DEGRTTLR',
'DETBS_RTL_TELLER',
NULL,
NULL,
GLOBAL.USER_ID,
TO_DATE(TO_CHAR(GLOBAL.APPLICATION_DATE,
'DD-MON-YYYY') || ' ' ||
TO_CHAR(FN_SYSDATE, 'HH24:MI:SS'),
'DD-MON-YYYY HH24:MI:SS'),
'N',
'A',
NULL,
P_RET) THEN
DBG('E', 'Error while calling fn_insert_record_log');
P_RET := -1;
RETURN FALSE;
END IF;
-- FCC73ITR2 SFR 58
DBG('Successfully finished fn_reverse....');
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DBG('E',
'Exception caught in function fn_reverse with error : ' ||
SQLERRM);
ROLLBACK TO SP_BEFORE_REV;
OVPKSS.PR_APPENDTBL(L_ERR_CODE, L_ERR_PARAM);
P_RET := -1;
P_TYP_ERR := OVPKSS.GL_TBLERROR;
RETURN FALSE;
END FN_AUTHORIZE;
---------------------------------------------------------------
-- FCC73ITR1 SFR 336

FUNCTION FN_RESOLVE_REF(P_EXT_REF IN OUT DETBS_RTL_TELLER.XREF%TYPE,


P_FCC_REF IN OUT DETBS_RTL_TELLER.TRN_REF_NO%TYPE,
P_ERR_CODE IN OUT VARCHAR2,
P_ERR_PARAMS IN OUT VARCHAR2) RETURN BOOLEAN IS

L_ACT_EXT_REF DETBS_RTL_TELLER.XREF%TYPE;
L_ACT_FCC_REF DETBS_RTL_TELLER.TRN_REF_NO%TYPE;
L_COUNT NUMBER;

BEGIN
DBG('In fn_resolve_ref..Parameters are ');
DBG('p_Ext_Ref-->' || P_EXT_REF);
DBG('p_Fcc_Ref-->' || P_FCC_REF);
DBG('branch Code :' || GLOBAL.CURRENT_BRANCH);

IF P_FCC_REF IS NULL AND P_EXT_REF IS NULL THEN


DBG('Both Xref and FCCREF cannot be NULL');
P_ERR_CODE := 'GW-RTL-020';
P_ERR_PARAMS := P_FCC_REF;
RETURN FALSE;
END IF;

IF P_FCC_REF IS NOT NULL THEN


L_ACT_FCC_REF := P_FCC_REF;
BEGIN
SELECT XREF
INTO L_ACT_EXT_REF
FROM DETBS_RTL_TELLER
WHERE TRN_REF_NO = P_FCC_REF
AND BRANCH_CODE = GLOBAL.CURRENT_BRANCH;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBG('Transaction Not Found in FLEXCUBE..');
P_ERR_CODE := 'WB-TXN-001';
P_ERR_PARAMS := P_FCC_REF;
RETURN FALSE;
END;
DBG('External Ref No In FCC :' || L_ACT_EXT_REF);
IF NVL(P_EXT_REF, NVL(L_ACT_EXT_REF, '*')) <> NVL(L_ACT_EXT_REF, '*') THEN
DBG('Reference Numbers Sent Do Not Match with FLEXCUBE..' ||
P_EXT_REF || ':' || P_FCC_REF);
P_ERR_CODE := 'GW-RTL-021';
P_ERR_PARAMS := P_EXT_REF || '~' || P_FCC_REF;
RETURN FALSE;
END IF;
P_EXT_REF := L_ACT_EXT_REF;
ELSIF P_EXT_REF IS NOT NULL THEN
L_ACT_EXT_REF := P_EXT_REF;
DBG('Entered into Else block');
DBG('p_ext_ref :' || P_EXT_REF);
BEGIN
SELECT TRN_REF_NO
INTO L_ACT_FCC_REF
FROM DETBS_RTL_TELLER
WHERE XREF = P_EXT_REF
AND BRANCH_CODE = GLOBAL.CURRENT_BRANCH;

EXCEPTION
WHEN NO_DATA_FOUND THEN
DBG('Transaction Not Found in FLEXCUBE..');
P_ERR_CODE := 'WB-TXN-001';
P_ERR_PARAMS := P_EXT_REF;
RETURN FALSE;
END;
DBG('FCC Ref No :' || L_ACT_FCC_REF);
IF NVL(P_FCC_REF, NVL(L_ACT_FCC_REF, '*')) <> NVL(L_ACT_FCC_REF, '*') THEN
DBG('Reference Numbers Sent Do Not Match with FLEXCUBE..' ||
P_EXT_REF || ':' || P_FCC_REF);
P_ERR_CODE := 'GW-RTL-021';
P_ERR_PARAMS := P_EXT_REF || '~' || P_FCC_REF;
RETURN FALSE;
END IF;
P_FCC_REF := L_ACT_FCC_REF;
ELSE
DBG('Both External Reference No and FCC Ref No are NULL..');
P_ERR_CODE := 'GW-RTL-020';
P_ERR_PARAMS := NULL;
RETURN FALSE;
END IF;

RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
DEBUG.PR_DEBUG('**',
'In when others of
gwpks_queryretailteller.fn_resolve_ref ..');
DEBUG.PR_DEBUG('**', SQLERRM);
P_ERR_CODE := 'FT-OTHR-001';
P_ERR_PARAMS := NULL;
RETURN FALSE;
END FN_RESOLVE_REF;

--9NT1428- FCUBS 11.2 Customer Group CHANGES STARTS


FUNCTION FN_DEFAULT_RELCUSTOMER(P_DETB_RTL_TLR IN OUT DETBS_RTL_TELLER%ROWTYPE,
P_ERR_CODE IN OUT VARCHAR2,
P_RET IN OUT NUMBER)
RETURN BOOLEAN IS

--DEFLT00031687 start
-- l_functionid smtb_menu.function_id%type; -- atm transactions failing
because of length
L_FUNCTIONID VARCHAR2(50); -- atm transactions failing because of length
L_COD_MAIN_LEG IFTM_ARC_MAINT.COD_MAIN_LEG%TYPE;
L_DR_ACC_TYP IFTM_ARC_MAINT.DR_ACC%TYPE;
--DEFLT00031687 end
L_FCDB_RT_PROD NUMBER := 0; --SD737680
BEGIN
DBG('Inside fn_default_relcustomer');
DBG('p_detb_rtl_tlr.txn_acc----> ' || P_DETB_RTL_TLR.TXN_ACC);
DBG('p_detb_rtl_tlr.ofs_acc----> ' || P_DETB_RTL_TLR.OFS_ACC);
DBG('p_detb_rtl_tlr.txn_branch----> ' || P_DETB_RTL_TLR.TXN_BRANCH);
DBG('p_detb_rtl_tlr.ofs_branch----> ' || P_DETB_RTL_TLR.OFS_BRANCH);

--DEFLT00031687 start
DBG('p_detb_rtl_tlr.PRODUCT_CODE----> ' || P_DETB_RTL_TLR.PRODUCT_CODE);
IF CSPKS_REQ_GLOBAL.G_HEADER.EXISTS('FUNCTIONID') THEN
L_FUNCTIONID := CSPKS_REQ_GLOBAL.G_HEADER('FUNCTIONID');
ELSE
L_FUNCTIONID := 'XXXX';
END IF;
DBG('l_functionid----> ' || L_FUNCTIONID);
--SD737680 start
BEGIN
SELECT INSTR(PARAM_VAL, P_DETB_RTL_TLR.PRODUCT_CODE)
INTO L_FCDB_RT_PROD
FROM CSTB_PARAM
WHERE PARAM_NAME = 'REL_CUST_RT_PROD';
EXCEPTION
WHEN OTHERS THEN
L_FCDB_RT_PROD := 0;
END;
DBG('l_fcdb_rt_prod----> ' || L_FCDB_RT_PROD);
--SD737680 end
-- Manual RT Track Creation Changes start
--IF l_functionid = '1006' THEN
IF L_FUNCTIONID IN ('1006', '1007') OR L_FCDB_RT_PROD > 0 --SD737680
THEN
-- Manual RT Track Creation Changes end
BEGIN
SELECT COD_MAIN_LEG, DR_ACC
INTO L_COD_MAIN_LEG, L_DR_ACC_TYP
FROM IFTMS_ARC_MAINT
WHERE COD_PROD_ACC_CLS = P_DETB_RTL_TLR.PRODUCT_CODE
AND RECORD_STAT = 'O'
AND ROWNUM = 1;
EXCEPTION
WHEN OTHERS THEN
L_COD_MAIN_LEG := NULL;
L_DR_ACC_TYP := NULL;
END;
DBG('l_cod_main_leg----> ' || L_COD_MAIN_LEG);
DBG('l_dr_acc_typ----> ' || L_DR_ACC_TYP);
IF L_COD_MAIN_LEG = 'T' AND L_DR_ACC_TYP = 'TXN' THEN
IF P_DETB_RTL_TLR.TXN_ACC IS NOT NULL THEN
DBG('Transaction acc is not null');
IF NOT CVPKS_UTILS.GET_STTB_ACC(P_DETB_RTL_TLR.TXN_BRANCH,
P_DETB_RTL_TLR.TXN_ACC,
PKG_STTB_ACCOUNT) THEN
P_ERR_CODE := 'DE-TUD-055';
P_RET := -1;
RETURN FALSE;
END IF;
DBG('pkg_sttb_account.cust_no--->' || PKG_STTB_ACCOUNT.CUST_NO);

IF PKG_STTB_ACCOUNT.AC_OR_GL = 'A' THEN


P_DETB_RTL_TLR.REL_CUSTOMER := PKG_STTB_ACCOUNT.CUST_NO;
END IF;

END IF;
ELSE
IF P_DETB_RTL_TLR.OFS_ACC IS NOT NULL THEN
DBG('Offset acc is not null1');
IF NOT CVPKS_UTILS.GET_STTB_ACC(P_DETB_RTL_TLR.OFS_BRANCH,
P_DETB_RTL_TLR.OFS_ACC,
PKG_STTB_ACCOUNT) THEN
P_ERR_CODE := 'DE-TUD-055';
P_RET := -1;
RETURN FALSE;
END IF;
DBG('pkg_sttb_account.cust_no--->' || PKG_STTB_ACCOUNT.CUST_NO);

IF PKG_STTB_ACCOUNT.AC_OR_GL = 'A' THEN


P_DETB_RTL_TLR.REL_CUSTOMER := PKG_STTB_ACCOUNT.CUST_NO;
END IF;

END IF;
END IF;
ELSE
--DEFLT00031687 end
IF P_DETB_RTL_TLR.TXN_ACC IS NOT NULL THEN
DBG('Transaction acc is not null');
IF NOT CVPKS_UTILS.GET_STTB_ACC(P_DETB_RTL_TLR.TXN_BRANCH,
P_DETB_RTL_TLR.TXN_ACC,
PKG_STTB_ACCOUNT) THEN
P_ERR_CODE := 'DE-TUD-055';
P_RET := -1;
RETURN FALSE;
END IF;
DBG('pkg_sttb_account.cust_no--->' || PKG_STTB_ACCOUNT.CUST_NO);

IF PKG_STTB_ACCOUNT.AC_OR_GL = 'A' THEN


P_DETB_RTL_TLR.REL_CUSTOMER := PKG_STTB_ACCOUNT.CUST_NO;
END IF;

END IF;

IF P_DETB_RTL_TLR.OFS_ACC IS NOT NULL THEN


DBG('Offset acc is not null2 ' || P_DETB_RTL_TLR.OFS_ACC || '~' ||
P_DETB_RTL_TLR.OFS_BRANCH);
IF NOT CVPKS_UTILS.GET_STTB_ACC(P_DETB_RTL_TLR.OFS_BRANCH,
P_DETB_RTL_TLR.OFS_ACC,
PKG_STTB_ACCOUNT) THEN
dbg('failed to get the account');
P_ERR_CODE := 'DE-TUD-055';
P_RET := -1;
RETURN FALSE;
END IF;
DBG('pkg_sttb_account.cust_no--->' || PKG_STTB_ACCOUNT.CUST_NO);
IF PKG_STTB_ACCOUNT.AC_OR_GL = 'A' THEN
P_DETB_RTL_TLR.REL_CUSTOMER := PKG_STTB_ACCOUNT.CUST_NO;
END IF;

END IF;
--DEFLT00031687 start
END IF;
--DEFLT00031687 end
DBG('p_detb_rtl_tlr.rel_customer---> ' || P_DETB_RTL_TLR.REL_CUSTOMER);
DBG('Successfully Returning From fn_default_relcustomer');
RETURN TRUE;
END FN_DEFAULT_RELCUSTOMER;

--9NT1428- FCUBS 11.2 Customer Group CHANGES ENDS

END DEPKS_RETAILTELLERUPLOAD;

You might also like