Sunteți pe pagina 1din 886

CREATE OR REPLACE PACKAGE BODY VISION.

Visiondailyextractions AS
G_Procedure_Name VARCHAR2(100);
G_Country VARCHAR2(2);
G_Le_Book VARCHAR2(2);
G_LastBusinessDateRun VARCHAR2(30);
G_Manual_Flag VARCHAR2(2);
G_CurrentTime DATE;
G_TableDate VARCHAR2(20);
G_LastTableDate VARCHAR2(20);
G_Current_Business_Date VARCHAR2(30);
G_Last_90_days VARCHAR2(30);
G_Feed_Name VARCHAR2(30);
Profit_Center VARCHAR2(30);
Migrated_Trsy_Table VARCHAR2(200);
G_Book_Ccy_Code VARCHAR2(3);
G_DB_Link VARCHAR2(40);
G_Process_Table VARCHAR2(30);

G_GAM_Table VARCHAR2(75);
G_HTH_Table VARCHAR2(75);
G_HTD_Table VARCHAR2(75);

G_Current_MonthEnd_Date VARCHAR2(30);
G_Last_MonthEnd_Date VARCHAR2(30);
G_MonthEnd_Flag VARCHAR2(2);

G_Staging_Table_Name VARCHAR2(30);
G_SystemName VARCHAR2(20);
G_LastRunYear NUMBER(5);

G_Operations_Flag VARCHAR2(1);
G_Recs_Processed_Ctr NUMBER(10);
G_Recs_Inserted_Ctr NUMBER(10);
G_Recs_Updated_Ctr NUMBER(10);
retVal NUMBER(2);
G_Log_File_Ptr UTL_FILE.file_type;
G_Error_Msg VARCHAR2(1000);

/* All constants for the error codes to be handled are to be


given here */
SQL_TBL_DOES_NOT_EXIST NUMBER(5) := -942;
SUCCESSFUL_EXIT NUMBER(1) := 0;
ERRONEOUS_EXIT NUMBER(1) := 1;
RERUN_EXIT NUMBER(1) := 2;
LOG_FILE_PATH VARCHAR2(100);
LOG_FILE_NAME VARCHAR2(50);

M_Country VARCHAR2(100):=null;
M_Le_Book VARCHAR2(100):=null;
M_Schema_Name VARCHAR2(100):=null;
M_LogDirectoryName VARCHAR2(100):=null;
M_LogFileName VARCHAR2(100):=null;
M_SourceSystem VARCHAR2(100):=null;
M_DBLink VARCHAR2(100):=null;
M_ModuleName VARCHAR2(100):=null;
G_SQLStatement VARCHAR2(10000):=null;
ccyDayCnt NUMBER(10) := 0;
processDate VARCHAR2(100):=null;
MonthEndFlg VARCHAR2(100):=null;
NextProcessDate VARCHAR2(100):=null;
manualDate VARCHAR2(100):=null;
tempStartDate VARCHAR2(30):=null;
bkdStartDate VARCHAR2(30):=null;
G_BWD_BUSINESS_DATE VARCHAR2(30):=null;

/*#######################################################################
##################################################
Name : openLogFile()
Description : Function to open the log file, meant to
record the steps of the processing
Author : Vision Team
Calling Script : NA
Assumptions : NA

Input Values : Log file path, log file name

Output Values : NA

Return Values : 1 - Upon ERRONEOUS_EXIT


0 - Upon SUCCESSFUL_EXIT

Tables Used : NA

#########################################################################
################################################*/

FUNCTION openLogFile(P_Log_File_Path IN VARCHAR2, P_Log_File_Name


IN VARCHAR2) RETURN NUMBER AS
BEGIN
LOG_FILE_PATH := P_Log_File_Path;
LOG_FILE_NAME := P_Log_File_Name;
BEGIN

dbms_output.put_line('Path:'||LOG_FILE_PATH||' File
:'||LOG_FILE_NAME);
G_Log_File_Ptr := utl_file.fopen (LOG_FILE_PATH,
LOG_FILE_NAME, 'A',4000);
EXCEPTION
WHEN OTHERS
THEN
dbms_output.put_line('Error occured while trying to open
log file for writing !!!!');
dbms_output.put_line('SQL Code obtained was [' || SQLCODE
|| ']');
dbms_output.put_line('Error Message was [' || SQLERRM ||
']');
RETURN (ERRONEOUS_EXIT);
END;

RETURN (SUCCESSFUL_EXIT);

END openLogFile;

/*#######################################################################
##################################################
Name : closeLogFile
Description : Function to close the log file opened
with the closeLogFile() function.
Author : Vision Team
Calling Script : NA
Assumptions : NA

Input Values : NA

Output Values : NA

Return Values : NA

Tables Used : NA

#########################################################################
################################################*/

PROCEDURE closeLogFile AS
BEGIN
BEGIN
UTL_FILE.fclose(G_Log_File_Ptr);
EXCEPTION
WHEN OTHERS
THEN
dbms_output.put_line('Error occured while trying to open
log file for writing !!!!');
dbms_output.put_line('SQL Code obtained was [' || SQLCODE
|| ']');
dbms_output.put_line('Error Message was [' || SQLERRM ||
']');
END;
END ;

/*
#########################################################################
############################################# */
FUNCTION clearCurrentBusinessData(P_ProcesTable IN
VARCHAR2,P_Feed_Name IN VARCHAR2) RETURN NUMBER AS
Process_Date Varchar2(30);
BEGIN
/* Added to Avoid Duplicate records insertion in Feed on Re-
Run */
/* IF G_Mannual_Flag ='Y' Then
Process_Date := G_Manual_Date;
ELS
Process_Date := G_Current_Business_Date;
End IF; */

BEGIN

iF (P_Feed_Name = 'ATMTRANS') THEN


writeLogInfo('DELETE FROM '||P_ProcesTable||'
WHERE COUNTRY = '''||G_Country||'''
AND LE_BOOK = '''||G_Le_Book||'''
AND BUSINESS_DATE =
'''||G_Current_Business_Date||''' ');
elsif(P_Feed_Name = 'FINCARD') THEN
writeLogInfo('Cards Data is Deleting ');
else
writeLogInfo('DELETE FROM '||P_ProcesTable||'
WHERE COUNTRY = '''||G_Country||'''
AND LE_BOOK = '''||G_Le_Book||'''
AND Feed_Date = '''||G_Current_Business_Date||'''
AND PRODUCT = '''||P_Feed_Name||'''');
end if;

IF (P_Feed_Name = 'ATMTRANS') THEN


EXECUTE IMMEDIATE ('DELETE FROM '||P_ProcesTable||'
WHERE COUNTRY = '''||G_Country||'''
AND LE_BOOK = '''||G_Le_Book||'''
AND BUSINESS_DATE =
'''||G_Current_Business_Date||''' ');
elsif(P_Feed_Name = 'FINCARD') THEN
writeLogInfo('Cards Data is Deleting');
else
EXECUTE IMMEDIATE ('DELETE FROM '||P_ProcesTable||'
WHERE COUNTRY = '''||G_Country||'''
AND LE_BOOK = '''||G_Le_Book||'''
AND Feed_Date = '''||G_Current_Business_Date||'''
AND PRODUCT = '''||P_Feed_Name||'''');
end if;

EXCEPTION
WHEN NO_DATA_FOUND
THEN
G_Error_Msg:='Delete Process completed successfully
for '||P_ProcesTable||'Record Cnt:'||SQL%Rowcount;
writeLogInfo(G_Error_Msg);
WHEN OTHERS
THEN
G_Error_Msg:='Error trying to Delete from
'||P_ProcesTable||' !!!!!!';
writeErrLogInfo(G_Error_Msg);
RETURN ERRONEOUS_EXIT;
END;
G_Error_Msg:='Delete Process completed successfully for
'||P_ProcesTable||' Record Cnt:'||SQL%Rowcount;
writeLogInfo(G_Error_Msg);

RETURN SUCCESSFUL_EXIT;

END clearCurrentBusinessData;

/*
#########################################################################
############################################# */
FUNCTION updateVisionETLStatus(P_Country IN VARCHAR2, P_Le_Book
IN VARCHAR2,P_Module In VARCHAR2,P_DBLink IN VARCHAR2,P_Status IN
VARCHAR2) RETURN NUMBER AS
Process_Date Varchar2(30);
V_DB_Link VARCHAR2(40);
recsCnt number;

BEGIN
processDate := NULL;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

processDate:=NULL;

BEGIN

SELECT TO_char(Process_Date,'DD-MON-RRRR') INTO processDate


FROM VISION_ETL_MONITOR
WHERE
COUNTRY =P_Country
AND LE_BOOK =P_Le_Book
AND SOURCE_SYSTEM =P_Module
AND STATUS ='I' ;

EXCEPTION
WHEN NO_DATA_FOUND
THEN
G_Error_Msg:='ETL Process Not Initiated for
'||P_Module;
writeLogInfo(G_Error_Msg);
WHEN OTHERS
THEN
G_Error_Msg:='Re-Initiate ETL Process Failed for
Module'||P_Module;
writeErrLogInfo(G_Error_Msg);
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('P_Status:'||P_Status);

IF (P_Status = 'I') THEN

writeLogInfo('processDate:'||processDate||' DB
LINK'||V_DB_Link);

IF (processDate IS NOT NULL ) THEN


RETURN SUCCESSFUL_EXIT;
END IF;

manualDate := Null;

SELECT TO_CHAR(MAX(MANUAL_DATE),'dd-MON-RRRR') INTO


manualDate FROM VISION_FEED_CONTROLS
WHERE
COUNTRY = P_Country
AND LE_BOOK = P_Le_Book
AND SOURCE_SYSTEM = P_Module
AND MANUAL_DATE IS NOT NULL;

writeLogInfo('Manualdate:'||manualDate);

IF manualDate IS NULL THEN


/*EXECUTE IMMEDIATE 'Select case when
t1.process_date > t2.process_date then t2.process_Date else
t1.process_date end from
(SELECT TO_CHAR(DB_STAT_DATE,''DD-MON-RRRR'')
process_date,''1'' PRC_FLG FROM GCT' || V_DB_Link || ' ) t1,
(SELECT TO_CHAR(max(tran_date),''DD-MON-RRRR'')
process_date,''1'' PRC_FLG FROM HTD' || V_DB_Link || ' ) t2
where t1.prc_flg=t2.prc_flg ' INTO
processDate; */
EXECUTE IMMEDIATE 'SELECT MAX(TRAN_DATE) TRAN_DATE
FROM HTH@FINACLEPROD' INTO processDate;
ELSE
processDate := manualDate;
END IF;

/* We need to same to run EOY then comment Start */


BEGIN
writeLogInfo('SELECT COUNT(1) FROM (SELECT MAX(TRAN_DATE)
TRAN_DATE FROM HTH@FINACLEPROD )
WHERE TO_CHAR(TRAN_DATE,''DD-MON-RRRR'')<= (SELECT
BUSINESS_DATE FROM VISION_BUSINESS_DAY
WHERE COUNTRY ='''||P_Country||''' And Le_Book =
'''||P_Le_Book||''') ');
EXECUTE IMMEDIATE 'SELECT COUNT(1) FROM (SELECT
MAX(TRAN_DATE) TRAN_DATE FROM HTH@FINACLEPROD )
WHERE TO_CHAR(TRAN_DATE,''DD-MON-RRRR'')<= (SELECT
BUSINESS_DATE FROM VISION_BUSINESS_DAY
WHERE COUNTRY ='''||P_Country||''' And Le_Book =
'''||P_Le_Book||''')' INTO recsCnt;

/*writeLogInfo('SELECT COUNT(1) FROM TBAADM.SOL' ||


V_DB_Link || '
WHERE TO_CHAR(SOL_CLS_DATE,''DD-MON-RRRR'') <=
(SELECT BUSINESS_DATE FROM VISION_BUSINESS_DAY
WHERE COUNTRY ='''||P_Country||''' And Le_Book =
'''||P_Le_Book||''') ');

EXECUTE IMMEDIATE 'SELECT COUNT(1) FROM TBAADM.SOL' ||


V_DB_Link || '
WHERE TO_CHAR(SOL_CLS_DATE,''DD-MON-RRRR'') <=
(SELECT BUSINESS_DATE FROM VISION_BUSINESS_DAY
WHERE COUNTRY ='''||P_Country||''' And Le_Book =
'''||P_Le_Book||''')' INTO recsCnt; */

EXCEPTION
WHEN OTHERS
THEN
G_Error_Msg:='Error While Prime EOD1 Compleated Checking';
writeErrLogInfo(G_Error_Msg);
dbms_output.put_line(G_Error_Msg);
RETURN ERRONEOUS_EXIT;
END;

writeLogInfo('Status:'||recsCnt);

IF( recsCnt <> 0 ) Then


writeLogInfo('Vision EOD Already Processed');
RETURN 5;
RETURN SUCCESSFUL_EXIT;
END IF;

/* We need to run EOY then comment End */

BEGIN
writeLogInfo('SELECT COUNT(1) FROM DUAL
WHERE '''||manualDate||''' < (SELECT BUSINESS_DATE
FROM VISION_BUSINESS_DAY
WHERE COUNTRY ='''||P_Country||''' And Le_Book =
'''||P_Le_Book||''') ');

EXECUTE IMMEDIATE 'SELECT COUNT(1) FROM DUAL


WHERE '''||manualDate||''' < (SELECT BUSINESS_DATE
FROM VISION_BUSINESS_DAY
WHERE COUNTRY ='''||P_Country||''' And Le_Book =
'''||P_Le_Book||''')' INTO recsCnt;

EXCEPTION
WHEN OTHERS
THEN
G_Error_Msg:='Error While Prime EOD Compleated Checking';
writeErrLogInfo(G_Error_Msg);
dbms_output.put_line(G_Error_Msg);
RETURN ERRONEOUS_EXIT;
END;

writeLogInfo('Status:'||recsCnt);

IF( recsCnt = 1 ) Then


writeLogInfo('Vision EOD Already Processed');
RETURN 5;
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('VisionprocessDate:'||processDate);
writeLogInfo('VisionmanualDate:'||manualDate);

EXECUTE IMMEDIATE 'DELETE FROM VISION_ETL_MONITOR


WHERE
COUNTRY ='''||P_Country||'''
AND LE_BOOK ='''||P_Le_Book||'''
AND SOURCE_SYSTEM ='''||P_Module||'''
AND PROCESS_DATE = TO_DATE('''||processDate||''',''DD-
MON-RRRR'')';

writeLogInfo('INSERT INTO VISION_ETL_MONITOR


(COUNTRY,LE_BOOK,SOURCE_SYSTEM,PROCESS_DATE,START_DATE,STATUS)

VALUES('''||P_Country||''','''||P_Le_Book||''','''||P_Module||''',TO_DATE
('''||processDate||''',''DD-MON-RRRR''),SYSDATE,'''||P_Status||''')');

EXECUTE IMMEDIATE 'INSERT INTO VISION_ETL_MONITOR


(COUNTRY,LE_BOOK,SOURCE_SYSTEM,PROCESS_DATE,START_DATE,STATUS)

VALUES('''||P_Country||''','''||P_Le_Book||''','''||P_Module||''',TO_DATE
('''||processDate||''',''DD-MON-RRRR''),SYSDATE,'''||P_Status||''')';

ELSE
writeLogInfo('UPDATE VISION_ETL_MONITOR
SET
END_DATE = SYSDATE,STATUS = '''||P_Status||'''
WHERE COUNTRY ='''||P_Country||'''
AND LE_BOOK ='''||P_Le_Book||'''
AND SOURCE_SYSTEM ='''||P_Module||'''
AND PROCESS_DATE =
TO_DATE('''||processDate||''',''DD-MON-RRRR'')');

UPDATE VISION_ETL_MONITOR
SET
END_DATE = SYSDATE,STATUS =
P_Status
WHERE COUNTRY = P_Country
AND LE_BOOK = P_Le_Book
AND SOURCE_SYSTEM = P_Module
AND PROCESS_DATE = TO_DATE(processDate,'dd-MON-
RRRR');
/*AND TRUNC(START_DATE) = TRUNC(SYSDATE); */

END IF;

EXCEPTION
WHEN OTHERS
THEN
G_Error_Msg:='Process Failed for Module'||P_Module;
writeErrLogInfo(G_Error_Msg);
RETURN ERRONEOUS_EXIT;
END;

RETURN SUCCESSFUL_EXIT;

END updateVisionETLStatus;

/*
#########################################################################
############################################# */
/* Status Hand off to Finacle */
/*
#########################################################################
############################################# */
FUNCTION updateParentModule(P_Module In VARCHAR2,P_Status IN
VARCHAR2) RETURN NUMBER AS
Process_Date Varchar2(30);
BEGIN
/* Added to Avoid Duplicate records insertion in Feed on Re-
Run */

/* IF G_Mannual_Flag ='Y' Then


Process_Date := G_Manual_Date;
ELS
Process_Date := G_Current_Business_Date;
End IF; */

BEGIN

writeLogInfo('UPDATE VISION_FEED_CONTROLS
SET
DATE_LAST_RUN ='''||G_Current_Business_Date||''',
/* After Extraction Completion */
COMPLETED_FLAG ='''||P_Status||''', /* After
Extraction Completion */
MANUAL_DATE = NULL,
EXIT_STATUS = 0
WHERE COUNTRY ='''||G_Country||'''
AND LE_BOOK ='''||G_Le_Book||''' ');
/*AND MODULE_NAME ='''||P_Module||''' */
UPDATE VISION_FEED_CONTROLS
SET
DATE_LAST_RUN = G_Current_Business_Date, /*
After Extraction Completion */
COMPLETED_FLAG = P_Status, /* After Extraction
Completion */
MANUAL_DATE = NULL
WHERE COUNTRY = G_Country
AND LE_BOOK = G_Le_Book;
/* AND MODULE_NAME = P_Module; */

EXCEPTION
WHEN NO_DATA_FOUND
THEN
G_Error_Msg:='No Entry in VISION_FEED_CONTROLS for
Module'||P_Module;
writeLogInfo(G_Error_Msg);
WHEN OTHERS
THEN
G_Error_Msg:='Process Failed for Module'||P_Module;
writeErrLogInfo(G_Error_Msg);
RETURN ERRONEOUS_EXIT;
END;

RETURN SUCCESSFUL_EXIT;

END updateParentModule;

/*#######################################################################
######################################################
Name : doPreliminaryValidations
Description : Performs the preliminary validations,
before calling any of the daily feed modules
Checks for a valid COUNTRY + LE_BOOK entry in the
table VISION_PARAM_TABLE, that is present
in the source systems (Finacle/FinnOne etc.) and
then tries to find an entry from the table
VISION_FEED_CONTROLS for the module presently
running.
Then loads certain values from the DB tables,
specific to the feed for which it is being called.
Author : Sunoida Info Tech
Calling Script : All scripts that call any of the daily
feed functions should call this function
to do the preliminary validations to be done
before, the feeds could start.
Assumptions : This function HAS to be called before
calling any of the feed-in functions/procedures
A valid log file should have been opened (thru
openLogFile() function) so that the calls
to write logs inside this function doesn't fail.

Input Values : Module name (for which this preliminary


function is called) and the system name from which
the data is to be pulled in (Eg: Finacle,
FinnOne).

Output Values : NA

Return Values : 1 - Upon ERRONEOUS_EXIT


0 - Upon SUCCESSFUL_EXIT

Tables Used :

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
VISION_PARAM_TABLE X
VISION_FEED_CONTROLS X X
LE_BOOK X

Modifications History :
Serial No. Date Modifier Name
Description
01

#########################################################################
####################################################*/

FUNCTION doPreliminaryValidations(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2, P_ModuleName IN VARCHAR2) RETURN NUMBER AS
BEGIN
G_Procedure_Name := P_ModuleName;
G_Country := P_Country;
G_Le_Book := P_Le_Book;
G_Recs_Processed_Ctr := 0;
G_Recs_Inserted_Ctr := 0;
G_Recs_Updated_Ctr := 0;
G_Current_Business_Date := NULL;
G_Current_MonthEnd_Date := NULL;
G_Last_MonthEnd_Date := NULL;
G_GAM_Table := NULL;
G_HTD_Table := NULL;
G_HTH_Table := NULL;
G_Feed_Name := NULL;
G_MonthEnd_Flag := 'N';
G_DB_Link := NULL;

/* Do the intial check to find out whether we can proceed


with our process */

BEGIN
G_Book_Ccy_Code := 'MUR';

G_LastBusinessDateRun := NULL;

G_Manual_Flag := 'N';

G_Process_Table :=NULL;

SELECT TO_CHAR((DATE_LAST_RUN),'dd-MON-RRRR'),
TO_CHAR((NVL(MANUAL_DATE,CURRENT_BUSINESS_DATE)),'dd-
MON-RRRR'),
TO_CHAR((NVL(MANUAL_DATE,CURRENT_BUSINESS_DATE)-
90),'dd-MON-RRRR'),
(FEED_NAME),
(CASE WHEN MANUAL_DATE IS NOT NULL THEN 'Y' ELSE 'N'
END) MANUAL_FLAG,
(CASE WHEN (NVL(MANUAL_DATE,CURRENT_BUSINESS_DATE)) =
MONTHEND_DATE THEN 'Y' ELSE 'N' END) Monthend_Flag,
TO_CHAR(MONTHEND_DATE,'dd-MON-RRRR'),
TO_CHAR(LAST_MONTHEND_DATE,'dd-MON-RRRR'),
FEED_STG_NAME,
DB_LINK
INTO G_LastBusinessDateRun ,
G_Current_Business_Date,
G_Last_90_days,
G_Feed_Name,
G_Manual_Flag,
G_MonthEnd_Flag,
G_Current_MonthEnd_Date,
G_Last_MonthEnd_Date,
G_Process_Table,
G_DB_Link
FROM VISION_FEED_CONTROLS
WHERE COUNTRY = G_Country
AND LE_BOOK = G_Le_Book
AND MODULE_NAME = G_Procedure_Name;

writeLogInfo('G_Manual_Flag ['||G_Manual_Flag||']');
writeLogInfo('G_MonthEnd_Flag ['||G_MonthEnd_Flag||']');

writeLogInfo('Last Business Date Run


['||G_LastBusinessDateRun||'] Current Business Date
['||G_Current_Business_Date||']');

writeLogInfo('DB_Link ['||G_DB_Link||']');

/* writeLogInfo('Source_System ['|| P_SourceSystem ||']');


*/

IF G_LastBusinessDateRun IS NULL
THEN
writeLogInfo('Null- There should be at least one
record in the control table to proceed 1!! Aborting Execution.');
RETURN (ERRONEOUS_EXIT);
END IF;

IF G_Current_Business_Date IS NULL
THEN
writeLogInfo('<'||G_Current_Business_Date||'> Null-
There should be at least one record in the control table to proceed 2 !!
Aborting Execution.');
RETURN (ERRONEOUS_EXIT);
END IF;

IF G_Current_MonthEnd_Date IS NULL
THEN
writeLogInfo('Null- There should be at least one
record in the control table to proceed 3!! Aborting Execution.');
RETURN (ERRONEOUS_EXIT);
END IF;

IF G_Last_MonthEnd_Date IS NULL
THEN
writeLogInfo('Null- There should be at least one
record in the control table to proceed 4!! Aborting Execution.');
RETURN (ERRONEOUS_EXIT);
END IF;

IF G_Feed_Name IS NULL
THEN
writeLogInfo('G_Feed_Name Cannot be Null !! Aborting
Execution.');
RETURN (ERRONEOUS_EXIT);
END IF;

writeLogInfo('The time of last execution obtained was ['


|| G_LastBusinessDateRun || ']');

IF ( G_LastBusinessDateRun = G_Current_Business_Date )
THEN
writeLogInfo('DATE_LAST_RUN Equal to
CURRENT_BUSINESS_DATE ==> FYI');
writeLogInfo('Procedure not recreate the staging
table...');
RETURN (RERUN_EXIT);
END IF;

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('There should be at least one record
in the
control TABLE TO proceed !! Aborting
Execution.5');
RETURN (ERRONEOUS_EXIT);
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Control table
VISION_FEED_CONTROLS Does not exists !! Aborting execution.');
RETURN (ERRONEOUS_EXIT);
ELSE
writeErrLogInfo('Unhandled Exception raised
trying fetch from VISION_FEED_CONTROLS Table !!');
RETURN (ERRONEOUS_EXIT);
END IF;
END;

BEGIN
SELECT LINK_TABLE_NAME
INTO G_GAM_Table
FROM VISION_FEED_LINKS_TABLES
WHERE SOURCE_TABLE_NAME = 'GAM';

writeLogInfo('G_GAM_Table ['||G_GAM_Table||']');

IF G_GAM_Table IS NULL
THEN
writeLogInfo('Null- There should not be at NULL value
in VISION_FEED_LINKS_TABLES for GAM !! Aborting Execution.');
RETURN (ERRONEOUS_EXIT);
END IF;

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('There should be at least one record
in the
VISION_FEED_LINKS_TABLES (GAM) TO proceed !!
Aborting Execution.');
RETURN (ERRONEOUS_EXIT);
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Control table
VISION_FEED_LINKS_TABLES (GAM) Does not exists !! Aborting execution.');
RETURN (ERRONEOUS_EXIT);
ELSE
writeErrLogInfo('Unhandled Exception raised
trying fetch from VISION_FEED_LINKS_TABLES Table (GAM)!!');
RETURN (ERRONEOUS_EXIT);
END IF;
END;

IF G_Feed_Name IN ('TRANCNTCOT','SCANMANDATE','CONTTODS')
THEN
G_GAM_Table := 'GAM';
END IF;

BEGIN
SELECT LINK_TABLE_NAME
INTO G_HTH_Table
FROM VISION_FEED_LINKS_TABLES
WHERE SOURCE_TABLE_NAME = 'HTH';

writeLogInfo('G_HTH_Table ['||G_HTH_Table||']');

IF G_HTH_Table IS NULL
THEN
writeLogInfo('Null- There should not be at NULL value
in VISION_FEED_LINKS_TABLES for HTH !! Aborting Execution.');
RETURN (ERRONEOUS_EXIT);
END IF;

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('There should be at least one record
in the
VISION_FEED_LINKS_TABLES (HTH) TO proceed !!
Aborting Execution.');
RETURN (ERRONEOUS_EXIT);
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Control table
VISION_FEED_LINKS_TABLES (HTH) Does not exists !! Aborting execution.');
RETURN (ERRONEOUS_EXIT);
ELSE
writeErrLogInfo('Unhandled Exception raised
trying fetch from VISION_FEED_LINKS_TABLES Table (HTH) !!');
RETURN (ERRONEOUS_EXIT);
END IF;
END;

BEGIN
SELECT LINK_TABLE_NAME
INTO G_HTD_Table
FROM VISION_FEED_LINKS_TABLES
WHERE SOURCE_TABLE_NAME = 'HTD';

writeLogInfo('G_HTD_Table ['||G_HTD_Table||']');

IF G_HTD_Table IS NULL
THEN
writeLogInfo('Null- There should not be at NULL value
in VISION_FEED_LINKS_TABLES for HTD !! Aborting Execution.');
RETURN (ERRONEOUS_EXIT);
END IF;

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('There should be at least one record
in the
VISION_FEED_LINKS_TABLES TO proceed (HTD) !!
Aborting Execution.');
RETURN (ERRONEOUS_EXIT);
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Control table
VISION_FEED_LINKS_TABLES (HTD) Does not exists !! Aborting execution.');
RETURN (ERRONEOUS_EXIT);
ELSE
writeErrLogInfo('Unhandled Exception raised
trying fetch from VISION_FEED_LINKS_TABLES Table (HTD)!!');
RETURN (ERRONEOUS_EXIT);
END IF;
END;

BEGIN
SELECT VALUE
INTO Profit_Center
FROM VISION_VARIABLES
WHERE VARIABLE ='EXCLUDE_PROFIT_CENTER';

writeLogInfo('G_HTD_Table ['||G_HTD_Table||']');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('There should be at least one record
in the
VISION_VARIABLES TO proceed (PROFIT_CENTER)
!! Aborting Execution.');
RETURN (ERRONEOUS_EXIT);
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Control table
VISION_VARIABLES (PROFIT_CENTER) Does not exists !! Aborting
execution.');
RETURN (ERRONEOUS_EXIT);
ELSE
writeErrLogInfo('Unhandled Exception raised
trying fetch from VISION_VARIABLES Table (PROFIT_CENTER)!!');
RETURN (ERRONEOUS_EXIT);
END IF;
END;

/* Get the current system date and time */


G_CurrentTime := SYSDATE;

IF G_Feed_Name = 'CCY' THEN


ccyDayCnt := 0;
SELECT COUNT(1) into ccyDayCnt FROM
CURRENCY_FEED_STG WHERE COUNTRY = G_Country AND LE_BOOK = G_Le_Book AND
FEED_DATE = G_Current_Business_Date; --AND RUN_STATUS ='Y';
IF ccyDayCnt > 0 THEN
G_Error_Msg :='Process has Completed for
Business Day '||G_Current_Business_Date||' !!';
writeLogInfo(G_Error_Msg);
RETURN ERRONEOUS_EXIT;
END IF;

END IF;

/* Delete for Current Business Data on Re-Run */

retVal :=
clearCurrentBusinessData(G_Process_Table,G_Feed_Name);
IF retVal = 1
THEN
G_Error_Msg :='Error while Deleting from
'||G_Process_Table||' !!';
writeErrLogInfo(G_Error_Msg);
RETURN ERRONEOUS_EXIT;
END IF;

RETURN(SUCCESSFUL_EXIT);

END doPreliminaryValidations;

/*#######################################################################
##################################################
Name : writeLogInfo
Description : Procedure to write log information to
the log file name (opened with openLogFile() function)
Author : Vision Team
Calling Script : All scripts that call any of the daily
feed functions will call this function
to write log information.
Assumptions : A valid log file should have been
opened (thru openLogFile() function) so that the calls
to write logs inside this function doesn't fail.

Input Values : Log string that is to be written to the


process log file

Output Values : NA

Return Values : NA

Tables Used : NA

#########################################################################
################################################*/
PROCEDURE writeLogInfo(P_LogMsg IN VARCHAR2) AS
BEGIN
/*Insert Into VISION_PROCESS_LOG(Country, Le_Book,
Procedure_Name, Log_Time_Stamp, Vision_Msg_Text)
Values (country, Le_Book, procedureName, sysdate,
P_logMsg);
*/
UTL_FILE.put_line (G_Log_File_Ptr, G_Country || '|' ||
G_Le_Book || '|' || G_Procedure_Name || '|' ||
TO_CHAR(SYSDATE, 'dd-mm-yyyy HH24:MI:SS') || '|' ||
P_LogMsg);
UTL_FILE.fflush(G_Log_File_Ptr);

END writeLogInfo;

PROCEDURE print(printMsg IN VARCHAR2) AS


BEGIN
dbms_output.put_line(printMsg);
END print;

/*#######################################################################
##################################################
Name : writeErrLogInfo
Description : Procedure to write log information to
the log file name (opened with openLogFile() function)
This is same as the writeLogInfo() function,
except that, this prints the error code and
error message that occured at the present
scenario.
Author : Vision Team
Calling Script : All scripts that call any of the daily
feed functions will call this function
to write log information.
Assumptions : A valid log file should have been
opened (thru openLogFile() function) so that the calls
to write logs inside this function doesn't fail.

Input Values : P_logMsg - Log string that is to be


written to the process log file

Output Values : NA

Return Values : NA

Tables Used : NA

#########################################################################
################################################*/

PROCEDURE writeErrLogInfo(P_logMsg IN VARCHAR2) AS


BEGIN
writeLogInfo(P_logMsg);
writeLogInfo('SQL Code obtained was [' || SQLCODE || ']');
writeLogInfo('Error Message was [' || SQLERRM || ']');
END writeErrLogInfo;

/*#######################################################################
##################################################
Name : updateVisionFeedControlsRecord
Description : Procedure to create feeds control
record. This control feed record is maintained for every
module (feed-in modules) which will be read by
every daily feed module, during every run, to
determine the date-time range from which the feed
needs to run.
Author : Vision Team
Calling Script : All scripts that call any of the daily
feed functions will call this function
finally, to create the control record for the
feed called.
Assumptions : The control record is created, only
upon the successful completion of the procedure.
The procedure should hence be called ONLY on the
event of successful completion.

Input Values : NA

Output Values : NA

Return Values : NA

Tables Used : NA

#########################################################################
################################################*/

PROCEDURE updateVisionFeedControlsRecord(P_Status IN VARCHAR2) AS


BEGIN
/* On the event of a failure, the control record should not
be created */
writeLogInfo('Process completed successfully');

BEGIN

IF(P_Status = 'C') Then

UPDATE VISION_FEED_CONTROLS
SET
DATE_LAST_RUN = G_Current_Business_Date,
/* After Extraction Completion */
MANUAL_DATE = NULL,
RECORDS_FETCHED_COUNT = G_Recs_Processed_Ctr,
EXIT_STATUS = 0,
COMPLETED_FLAG = P_Status /* After Extraction
Completion */
WHERE COUNTRY = G_Country
AND LE_BOOK = G_Le_Book
AND MODULE_NAME = G_Procedure_Name;

ELSIF (P_Status = 'E') Then


UPDATE VISION_FEED_CONTROLS
SET
RECORDS_FETCHED_COUNT = 0,
EXIT_STATUS = 1,
COMPLETED_FLAG = P_Status /* After Extraction
Completion */
WHERE COUNTRY = G_Country
AND LE_BOOK = G_Le_Book
AND MODULE_NAME = G_Procedure_Name;
ELSE
UPDATE VISION_FEED_CONTROLS
SET
COMPLETED_FLAG = P_Status, /* After Extraction
Completion */
EXIT_STATUS = 0
WHERE COUNTRY = G_Country
AND LE_BOOK = G_Le_Book
AND MODULE_NAME = G_Procedure_Name;
END IF;

EXCEPTION
WHEN OTHERS
THEN
writeErrLogInfo('Error trying to Update into
VISION_FEED_CONTROLS table for process completion !!!!!!');
END;

END updateVisionFeedControlsRecord;

/*
#########################################################################
############################################# */
FUNCTION sourceSystemEODChecks(P_Country IN Varchar2 ,P_Le_Book
IN Varchar2,P_SourceSystem IN VARCHAR2,P_DBLink IN VARCHAR2) RETURN
NUMBER as
V_DB_Link VARCHAR2(40);
recsCnt Number (1):=0;
recsCnt1 Number (20):=0;

BEGIN

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
recsCnt := 0;

/* if Flag is Y That Means Extraction Will Not Happend */


EXECUTE IMMEDIATE 'SELECT CASE When VALUE = ''N'' Then 1
Else 0 End
FROM VISION_VARIABLES Where VARIABLE =
''EOD_PROCESS'' ' INTO recsCnt;

EXCEPTION
WHEN OTHERS
THEN
G_Error_Msg:='Error While Comparing Vision Variables
For EOD_PROCESS With '||P_SourceSystem||' System !!!!!!';
writeErrLogInfo(G_Error_Msg);
dbms_output.put_line(G_Error_Msg);
RETURN ERRONEOUS_EXIT;

IF( recsCnt = 1 ) Then


writeLogInfo('Support Users Has Stoped The
Extraction');
RETURN 4;
END IF;
END;

/* Manual Process Allow */

BEGIN
recsCnt := 0;

EXECUTE IMMEDIATE 'SELECT CASE WHEN VALUE = ''N'' Then 1


Else 0 End
FROM VISION_VARIABLES WHERE VARIABLE =
''MANUAL_PROCESS'' ' INTO recsCnt;

IF( recsCnt = 1 ) Then


BEGIN
recsCnt1 := 0;

EXECUTE IMMEDIATE 'SELECT COUNT(1) FROM


SOL'||V_DB_Link||' WHERE DB_STAT_CODE <>''H'' ' INTO recsCnt1;

IF( recsCnt1 != 0 ) Then


writeLogInfo('CEOD Not Yet Completed');
RETURN 5;
END IF;

EXCEPTION
WHEN OTHERS
THEN
G_Error_Msg:='Error While Comparing
Vision Variables For CEOD COMPLETED With '||P_SourceSystem||' System
!!!!!!';
writeErrLogInfo(G_Error_Msg);
dbms_output.put_line(G_Error_Msg);
RETURN ERRONEOUS_EXIT;
END;
END IF;

EXCEPTION
WHEN OTHERS
THEN
G_Error_Msg:='Error While Comparing Vision Variables
For MANUAL_PROCESS With '||P_SourceSystem||' System !!!!!!';
writeErrLogInfo(G_Error_Msg);
dbms_output.put_line(G_Error_Msg);
RETURN ERRONEOUS_EXIT;
END;

BEGIN
/* writeLogInfo('SELECT Case When Business_Date < (SELECT
MAX(TRAN_DATE) FROM HTH'||V_DB_Link||') Then 1 Else 0 End
from Vision_Business_Day Where Country =
'''||P_Country||''' And Le_Book = '''||P_Le_Book||'''');

EXECUTE IMMEDIATE 'SELECT Case When Business_Date <


(SELECT MAX(TRAN_DATE) FROM HTH'||V_DB_Link||') Then 1 Else 0 End
from Vision_Business_Day Where Country =
'''||P_Country||''' And Le_Book = '''||P_Le_Book||'''' INTO recsCnt; */

recsCnt := 0;

writeLogInfo('processDate:'||processDate);

IF (processDate is not Null ) Then

writeLogInfo('SELECT Case When Business_Date


< '''||processDate||''' Then 1 Else 0 End
from Vision_Business_Day Where Country =
'''||P_Country||''' And Le_Book = '''||P_Le_Book||'''');

EXECUTE IMMEDIATE 'SELECT Case When


Business_Date < '''||processDate||''' Then 1 Else 0 End
from Vision_Business_Day Where Country =
'''||P_Country||''' And Le_Book = '''||P_Le_Book||'''' INTO recsCnt;

ELSE

writeLogInfo('SELECT Case When Business_Date < (SELECT


MAX(DB_STAT_DATE) FROM HTH'||V_DB_Link||') Then 1 Else 0 End
from Vision_Business_Day Where Country =
'''||P_Country||''' And Le_Book = '''||P_Le_Book||'''');
EXECUTE IMMEDIATE 'SELECT Case When Business_Date <
(SELECT MAX(DB_STAT_DATE) FROM HTH'||V_DB_Link||') Then 1 Else 0 End
from Vision_Business_Day Where Country =
'''||P_Country||''' And Le_Book = '''||P_Le_Book||'''' INTO recsCnt;

END IF;
/* writeLogInfo('SELECT Case When DB_STAT_DATE > (SELECT
MAX(TRAN_DATE) FROM HTH'||V_DB_Link||') Then 1 Else 0 End
from GCT'||V_DB_Link);

EXECUTE IMMEDIATE 'SELECT Case When DB_STAT_DATE >


(SELECT MAX(TRAN_DATE) FROM HTH'||V_DB_Link||') Then 1 Else 0 End
from GCT'||V_DB_Link INTO recsCnt1;
*/
EXCEPTION
WHEN OTHERS
THEN
G_Error_Msg:='Error While Comparing Vision Business
Date With '||P_SourceSystem||' System !!!!!!';
writeErrLogInfo(G_Error_Msg);
dbms_output.put_line(G_Error_Msg);
RETURN ERRONEOUS_EXIT;
END;

dbms_output.put_line('Status:'||recsCnt);

/* IF( recsCnt = 1 AND recsCnt1 = 1 ) Then */


IF( recsCnt = 1 ) Then
writeLogInfo('EOD/BOD Check Completed');
RETURN SUCCESSFUL_EXIT;
ELSE
G_Error_Msg:='EOD/BOD Not Yet Completed'||V_DB_Link||'
!!!!!!';
writeErrLogInfo(G_Error_Msg);
dbms_output.put_line(G_Error_Msg);
RETURN 2;
END IF;

END sourceSystemEODChecks;
/*
#########################################################################
############################################# */
FUNCTION sourceETDChecks(P_SourceSystem IN VARCHAR2,P_DBLink IN
VARCHAR2,P_LogDirectoryName IN VARCHAR2,P_LogFileName IN VARCHAR2) RETURN
NUMBER as
V_DB_Link VARCHAR2(40);
recsCnt Number (20);

BEGIN

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN

writeLogInfo('Select Count(1) From ETD'||V_DB_Link||'');

EXECUTE IMMEDIATE 'Select Count(1) From ETD'||V_DB_Link||''


INTO recsCnt;

EXCEPTION
WHEN OTHERS
THEN
G_Error_Msg:='Error While Select from
ETD'||V_DB_Link||' !!!!!!';
writeErrLogInfo(G_Error_Msg);
RETURN ERRONEOUS_EXIT;
END;
dbms_output.put_line('Status:'||recsCnt);

if recsCnt <> 0 Then


G_Error_Msg:='Records Exists in
ETD'||V_DB_Link||',Check With Admin !!!!!!';
writeErrLogInfo(G_Error_Msg);
dbms_output.put_line(G_Error_Msg);
RETURN 2;
else
writeLogInfo('ETD Refresh Completed');
RETURN SUCCESSFUL_EXIT;
End if;

END sourceETDChecks;

/*#######################################################################
################################################## */
FUNCTION closeProcess(P_Country IN VARCHAR2, P_Le_Book IN
VARCHAR2 , P_DBLink IN VARCHAR2,P_Module_Name IN VARCHAR2 ) RETURN NUMBER
as
V_DB_Link VARCHAR2(40);

BEGIN

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
EXECUTE IMMEDIATE 'UPDATE VISION_FEED_CONTROLS set
CURRENT_BUSINESS_DATE = ''C''
WHERE COUNTRY ='''||P_Country||''' And LE_BOOK
='''||P_Le_Book||''' AND MODULE_NAME ='''||P_Module_Name||'''';

EXCEPTION
WHEN OTHERS
THEN
G_Error_Msg:='Error While Selecting complete
VISION_FEED_CONTROLS process !!!!!!';
writeErrLogInfo(G_Error_Msg);
RETURN ERRONEOUS_EXIT;
END;

RETURN SUCCESSFUL_EXIT;

END closeProcess;

/*#######################################################################
################################################## */
FUNCTION initializeControls(P_Country IN VARCHAR2, P_Le_Book IN
VARCHAR2 ,P_Source IN VARCHAR2, P_DBLink IN VARCHAR2) RETURN NUMBER as
V_DB_Link VARCHAR2(40);

BEGIN

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN

/* writeLogInfo('UPDATE VISION_FEED_CONTROLS set


CURRENT_BUSINESS_DATE = NVL(MANUAL_DATE,(SELECT DB_STAT_DATE FROM
GCT'||V_DB_Link||')),COMPLETED_FLAG=''N''
WHERE COUNTRY ='''||P_Country||''' And LE_BOOK
='''||P_Le_Book||''' '); */

/*EXECUTE IMMEDIATE 'UPDATE VISION_FEED_CONTROLS set


CURRENT_BUSINESS_DATE = NVL(MANUAL_DATE,(SELECT DB_STAT_DATE FROM
GCT'||V_DB_Link||')),COMPLETED_FLAG=''N''
WHERE COUNTRY ='''||P_Country||''' And LE_BOOK
='''||P_Le_Book||''''; */

writeLogInfo('UPDATE VISION_FEED_CONTROLS set


CURRENT_BUSINESS_DATE = NVL(MANUAL_DATE,(SELECT MAX(TRAN_DATE) FROM
HTH'||V_DB_Link||')),COMPLETED_FLAG=''N''
WHERE COUNTRY ='''||P_Country||''' And LE_BOOK
='''||P_Le_Book||''' AND SOURCE_SYSTEM='''||P_Source||''' ');
EXECUTE IMMEDIATE 'UPDATE VISION_FEED_CONTROLS set
CURRENT_BUSINESS_DATE = NVL(MANUAL_DATE,(SELECT MAX(TRAN_DATE) FROM
HTH'||V_DB_Link||')),COMPLETED_FLAG=''N''
WHERE COUNTRY ='''||P_Country||''' And LE_BOOK
='''||P_Le_Book||''' AND SOURCE_SYSTEM='''||P_Source||'''';

EXCEPTION
WHEN OTHERS
THEN
G_Error_Msg:='Error While Select Initiating
Process(VISION_FEED_CONTROLS)!!!!!!';
writeErrLogInfo(G_Error_Msg);
dbms_output.Put_line('Error While Select Initiating
Process(VISION_FEED_CONTROLS)!!!!!!');
RETURN ERRONEOUS_EXIT;
END;

writeLogInfo('Initiating (VISION_FEED_CONTROLS) Completed');

Commit;

RETURN SUCCESSFUL_EXIT;

END initializeControls;

/*#######################################################################
################################################## */

FUNCTION updateVisionBusinessDate(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2) RETURN NUMBER
AS
BEGIN
Begin
writeLogInfo('UPDATE VISION_BUSINESS_DAY set
BUSINESS_DATE ='''||G_Current_Business_Date||'''
WHERE COUNTRY ='''||P_Country||''' And LE_BOOK
='''||P_Le_Book||'''');

EXECUTE IMMEDIATE 'UPDATE VISION_BUSINESS_DAY set


BUSINESS_DATE ='''||G_Current_Business_Date||''' ';

/* EXECUTE IMMEDIATE 'UPDATE VISION_BUSINESS_DAY set


BUSINESS_DATE ='''||G_Current_Business_Date||'''
WHERE COUNTRY ='''||P_Country||''' And LE_BOOK
='''||P_Le_Book||''''; */

EXCEPTION
WHEN OTHERS
THEN
G_Error_Msg:='Error While Update Business Date in
(VISION_BUSINESS_DAY)!!!!!!';
writeErrLogInfo(G_Error_Msg);
dbms_output.Put_line('Error While Update Business
Date in(VISION_BUSINESS_DAY)!!!!!!');
RETURN ERRONEOUS_EXIT;
END;

writeLogInfo('Initiating (VISION_BUSINESS_DAY) Completed');

RETURN SUCCESSFUL_EXIT;

END updateVisionBusinessDate;

/*#######################################################################
################################################## */
Function spawnBuilds(P_Country In Varchar2, P_Le_Book In
Varchar2, P_Feed_Date In Date) Return Number
As
buildNumber Number(5);
Ctr Number(2);
successFlag Varchar2(1);
baseLineFlag Varchar2(1);
duplicateFlg Varchar2(1) :='N';
Begin
Ctr := 0;
While Ctr < 5
Loop
Begin
Select Nvl(Max(Build_Number), 0)+1 Into
buildNumber From Build_Schedules;
Exception
When No_Data_Found
Then
buildNumber := 1;
Exit;
When Others
Then
writeLogInfo('Error obtaining unique build number
from Build_Schedules !! Code [' || SQLCODE || '], Msg [' || SQLERRM ||
']');
RETURN ERRONEOUS_EXIT;
End;

Begin
/* Insert into the Build_Schedules [A[B tables, to
initiate
the builds meant to process the data from the
staging area to the actual destination tables */
Insert Into Build_Schedules(COUNTRY, LE_BOOK, BUILD,
SCHEDULED_DATE,
BUILD_NUMBER, PARALLEL_PROCS_COUNT,
NOTIFY, SUPPORT_CONTACT, SUBMITTER_ID,
START_TIME, END_TIME,
BUILD_SCHEDULE_STATUS, RECURRING_FREQUENCY,
DATE_LAST_MODIFIED, DATE_CREATION)
Select P_Country, P_Le_Book, BUILD, SysDate,
buildNumber, PARALLEL_PROCS_COUNT,
NOTIFY, SUPPORT_CONTACT, 9999, Null, Null,
'P', RECURRING_FREQUENCY, SysDate, SysDate
From Dly_Feed_Build_Schedules
Where Country = P_Country
And Le_Book = P_Le_Book;
Exception

WHEN DUP_VAL_ON_INDEX THEN


NULL;
duplicateFlg := 'Y';
When Others
Then
writeLogInfo('Error inserting into
Build_Schedules !! Code [' || SQLCODE || '], Msg [' || SQLERRM || ']');
RETURN ERRONEOUS_EXIT;
End;

If duplicateFlg != 'Y'
Then
successFlag := 'Y';
exit;
End If;

Ctr := Ctr + 1;
End Loop;

If successFlag = 'N'
Then
writeLogInfo('Unsuccessful attempts to generate build
entries !!!!!!');
RETURN ERRONEOUS_EXIT;
End If;

Begin
Insert Into Build_Schedules_Details(Country, Le_Book,
Build_Number, Sub_Build_Number, Bsd_Sequence, Associated_Build,
Build_Module, Run_It, Program_Type, Progress_Percent,
Module_Status,
Debug_Mode, Start_Time, End_Time, Date_Last_Modified,
Date_Creation)
Select Country, Le_Book, buildNumber, Sub_Build_Number,
Bsd_Sequence, Associated_Build,
Build_Module, 'Y', Program_Type, 0, 'P',
Decode(Upper(T2.Value),'NO','N','Y'), Null, Null,
SysDate, SysDate
From Dly_Feed_Build_Schedules_Dets T1, Vision_Variables
T2
Where T1.Country = P_Country
And T1.Le_Book = P_Le_Book
And T2.variable = 'BUILDCRON_DEBUG_MODE' ;
/* And T1.Build_Module NOT like 'BS%'; */

Exception
When Others
Then
writeLogInfo('Error inserting into
Build_Schedules_Details !! Code [' || SQLCODE || '], Msg [' || SQLERRM ||
']');
RETURN ERRONEOUS_EXIT;
End;

writeLogInfo('Build has been initiated for the Country ' ||


P_Country || ', Le_Book ' || P_Le_Book || ' Build_Number ' ||
buildNumber);

RETURN SUCCESSFUL_EXIT;

End spawnBuilds;

/*#######################################################################
##################################################
Name : getCcyRatesStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[CURRENCY_RATES_DAILY].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getCcyRatesStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getCcyRatesStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'CURRENCY_FEED_STG');
EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CURRENCY_FEED_STG !!');
closeLogFile;
RETURN ERRONEOUS_EXIT;
END IF;
END; */

/* Creating Transaction Data For Runnig Date */

writeLogInfo('Beginning staging table TEMP_GAM Creation


......');
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'TEMP_GAM PURGE ');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The TEMP_GAM table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TEMP_GAM !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN
writeLogInfo('Create Table TEMP_GAM AS
SELECT * FROM GAM' || V_DB_Link || '
WHERE GL_SUB_HEAD_CODE in (select vision_gl
from gl_translation where substr( mapping_source_vision_gl,1,1) in
(''5'',''6'') )
AND ACCT_CRNCY_CODE !=''MUR''
AND CUST_ID IS NULL ');

EXECUTE IMMEDIATE ('Create Table TEMP_GAM AS


SELECT * FROM GAM' || V_DB_Link || '
WHERE GL_SUB_HEAD_CODE in (select vision_gl
from gl_translation where substr( mapping_source_vision_gl,1,1) in
(''5'',''6'') )
AND ACCT_CRNCY_CODE !=''MUR''
AND CUST_ID IS NULL ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create TEMP_GAM !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Beginning Drop table TEMP_TXN_DTL_HTD ......');

BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'TEMP_TXN_DTL_HTD PURGE ');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TEMP_TXN_DTL_HTD !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');

writeLogInfo('Beginning staging table TEMP_TXN_DTL_HTD


Creation ......');

BEGIN
writeLogInfo('Create Table TEMP_TXN_DTL_HTD AS
select * from htd' || V_DB_Link || ' where
tran_date ='''|| G_Current_Business_Date ||'''
union all
select * from dtd' || V_DB_Link || ' where
tran_date ='''|| G_Current_Business_Date ||'''
Union All
select * from etd' || V_DB_Link || ' where
tran_date ='''|| G_Current_Business_Date ||''' ');

EXECUTE IMMEDIATE ('Create Table TEMP_TXN_DTL_HTD AS


SELECT * FROM HTD' || V_DB_Link || ' WHERE
TRAN_DATE ='''|| G_Current_Business_Date ||'''
UNION ALL
SELECT * FROM DTD' || V_DB_Link || ' WHERE
TRAN_DATE ='''|| G_Current_Business_Date ||'''
UNION ALL
SELECT * FROM ETD' || V_DB_Link || ' WHERE
TRAN_DATE ='''|| G_Current_Business_Date ||''' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create TEMP_TXN_DTL_HTD !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');

writeLogInfo('Beginning Creation Index On TEMP_TXN_DTL_HTD


(TRAN_DATE,TRAN_ID,PART_TRAN_SRL_NUM)......');

BEGIN
writeLogInfo('Create INDEX TEMP_TXN_DTL_HTD_IDX ON
TEMP_TXN_DTL_HTD (TRAN_DATE,TRAN_ID,PART_TRAN_SRL_NUM)');

EXECUTE IMMEDIATE ('Create INDEX TEMP_TXN_DTL_HTD_IDX ON


TEMP_TXN_DTL_HTD (TRAN_DATE,TRAN_ID,PART_TRAN_SRL_NUM)');
G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create Index on TEMP_TXN_DTL_HTD
(TRAN_DATE,TRAN_ID,PART_TRAN_SRL_NUM) !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');

writeLogInfo('Beginning Creation Index On TEMP_TXN_DTL_HTD


(ACID,TRAN_DATE)......');

BEGIN
writeLogInfo('Create INDEX TEMP_TXN_DTL_HTD_IDX1 ON
TEMP_TXN_DTL_HTD (ACID,TRAN_DATE)');

EXECUTE IMMEDIATE ('Create INDEX TEMP_TXN_DTL_HTD_IDX1 ON


TEMP_TXN_DTL_HTD (ACID,TRAN_DATE) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create Index on TEMP_TXN_DTL_HTD (ACID,TRAN_DATE)!!');
RETURN ERRONEOUS_EXIT;
END IF;
END;
BEGIN
writeLogInfo('Create INDEX TEMP_TXN_DTL_HTD_IDX8 ON
TEMP_TXN_DTL_HTD (cust_id)');

EXECUTE IMMEDIATE ('Create INDEX TEMP_TXN_DTL_HTD_IDX8 ON


TEMP_TXN_DTL_HTD (cust_id) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create Index on TEMP_TXN_DTL_HTD (cust_id)!!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');

writeLogInfo('Beginning Creation Index On TEMP_TXN_DTL_HTD


(GL_SUB_HEAD_CODE,TRAN_CRNCY_CODE,SOL_ID,TRAN_DATE)......');

BEGIN
writeLogInfo('Create INDEX TEMP_TXN_DTL_HTD_IDX2 ON
TEMP_TXN_DTL_HTD (GL_SUB_HEAD_CODE,TRAN_CRNCY_CODE,SOL_ID,TRAN_DATE)');

EXECUTE IMMEDIATE ('Create INDEX TEMP_TXN_DTL_HTD_IDX2 ON


TEMP_TXN_DTL_HTD (GL_SUB_HEAD_CODE,TRAN_CRNCY_CODE,SOL_ID,TRAN_DATE) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create Index on TEMP_TXN_DTL_HTD
(GL_SUB_HEAD_CODE,TRAN_CRNCY_CODE,SOL_ID,TRAN_DATE) !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');

writeLogInfo('Beginning Creation Index On TEMP_TXN_DTL_HTD


(TRAN_DATE,TRAN_ID)......');

BEGIN
writeLogInfo('Create INDEX TEMP_TXN_DTL_HTD_IDX3 ON
TEMP_TXN_DTL_HTD (TRAN_DATE,TRAN_ID) ');

EXECUTE IMMEDIATE ('Create INDEX TEMP_TXN_DTL_HTD_IDX3 ON


TEMP_TXN_DTL_HTD (TRAN_DATE,TRAN_ID) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create Index on TEMP_TXN_DTL_HTD (TRAN_DATE,TRAN_ID) !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');

writeLogInfo('Beginning Creation Index On TEMP_TXN_DTL_HTD


(REF_NUM,TRAN_RMKS)......');

BEGIN
writeLogInfo('Create INDEX TEMP_TXN_DTL_HTD_IDX4 ON
TEMP_TXN_DTL_HTD (REF_NUM,TRAN_RMKS) ');
EXECUTE IMMEDIATE ('Create INDEX TEMP_TXN_DTL_HTD_IDX4 ON
TEMP_TXN_DTL_HTD (REF_NUM,TRAN_RMKS) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create Index on TEMP_TXN_DTL_HTD (REF_NUM,TRAN_RMKS) !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

begin
EXECUTE IMMEDIATE ('insert into customer_non_fund_limit (
CUSTOMER_ID ,
FEED_DATE ,
LIMIT_SUFFIX ,
LIMIT_DESC ,
SANCT_LIMIT ,
DRWNG_POWER ,
CURRENCY ,
LIM_SANCT_DATE ,
LIM_EXP_DATE ,
SANCT_LEVEL_CODE ,
SANCT_AUTH_CODE ,
LIMIT_PREFIX ,
LAST_PURGE_DATE ,
SANCT_LIM_AS_ON_PURGE_DATE ,
DRWNG_POWER_AS_ON_PURGE_DATE ,
LIMIT_STATUS )
select trim(cust_id) customer_id, '''||G_Current_Business_Date ||'''
FEED_DATE,
trim(LIMIT_SUFFIX) LIMIT_SUFFIX, trim(limit_desc)
limit_desc,SANCT_LIM,DRWNG_POWER,CRNCY_CODE CURRENCY,
LIM_SANCT_DATE ,LIM_EXP_DATE, SANCT_LEVL_CODE,SANCT_AUTH_CODE ,
trim(LIMIT_PREFIX) LIMIT_PREFIX ,
LAST_PURGE_DATE
,SANCT_LIM_AS_ON_PURGE_DATE,DRWNG_POWER_AS_ON_PURGE_DATE , 0 LIMIT_STATUS
from llt@finacleprod where del_flg!=''Y''
and ENTITY_CRE_FLG =''Y'' ');
EXCEPTION
WHEN OTHERS
THEN

writeErrLogInfo('Unhandled Exception raised


inserting customer_non_fund_limit !!');
RETURN ERRONEOUS_EXIT;

END;

IF to_date(G_Current_Business_Date,'DD-MON-RRRR')>
last_day(to_date(G_Current_Business_Date,'DD-MON-RRRR'))-5 then

begin

EXECUTE IMMEDIATE ('delete from PWT_CID where


year_month=TO_CHAR(to_date('''|| G_Current_Business_Date ||''',''DD-MON-
RRRR''),''RRRRMM'') ');

end;

begin
EXECUTE IMMEDIATE (' INSERT INTO PWT_CID(
YEAR_MONTH,
FORACID,
SECU_LINKAGE_TYPE,
ACID,
LIMIT_B2KID,
SECU_SRL_NUM,
DEL_FLG,
SECU_CODE,
PROPERTY_DOCUMENT_NUM,
PROPERTY_BUILDER_NAME,
PROPERTY_AREA_UNIT,
PROPERTY_BUILT_AREA,
PROPERTY_LAND_AREA,
PROPERTY_ADDRESS_1,
PROPERTY_ADDRESS_2,
PROPERTY_CITY,
PROPERTY_STATE,
PROPERTY_PIN_CODE,
PROPERTY_TITLE_OWNER,
PROPERTY_LEASED_FLG,
PROPERTY_EXP_DATE,
AGE_OF_BULDING_YEARS,
AGE_OF_BUILDING_MONTHS,
LCHG_USER_ID,
LCHG_TIME,
RCRE_USER_ID,
RCRE_TIME,
TS_CNT)
SELECT
TO_CHAR(to_date('''|| G_Current_Business_Date ||''',''DD-MON-
RRRR''),''RRRRMM'') YEAR_MONTH,
FORACID,
TRIM(T1.SECU_LINKAGE_TYPE),
TRIM(T1.ACID),
TRIM(T1.LIMIT_B2KID),
TRIM(T1.SECU_SRL_NUM),
TRIM(T1.DEL_FLG),
TRIM(T1.SECU_CODE),
TRIM(T1.PROPERTY_DOCUMENT_NUM),
TRIM(T1.PROPERTY_BUILDER_NAME),
TRIM(T1.PROPERTY_AREA_UNIT),
TRIM(T1.PROPERTY_BUILT_AREA),
TRIM(T1.PROPERTY_LAND_AREA),
TRIM(T1.PROPERTY_ADDRESS_1),
TRIM(T1.PROPERTY_ADDRESS_2),
TRIM(T1.PROPERTY_CITY),
TRIM(T1.PROPERTY_STATE),
TRIM(T1.PROPERTY_PIN_CODE),
TRIM(T1.PROPERTY_TITLE_OWNER),
TRIM(T1.PROPERTY_LEASED_FLG),
TRIM(T1.PROPERTY_EXP_DATE),
TRIM(T1.AGE_OF_BULDING_YEARS),
TRIM(T1.AGE_OF_BUILDING_MONTHS),
TRIM(T1.LCHG_USER_ID),
TRIM(T1.LCHG_TIME),
TRIM(T1.RCRE_USER_ID),
TRIM(T1.RCRE_TIME),
TRIM(T1.TS_CNT)
FROM CID@FINACLEPROD T1, GAM@FINACLEPROD T2
WHERE T1.ACID = T2.ACID(+)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' || TO_CHAR(G_Recs_Processed_Ctr)


|| '] records were obtained from source tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The PWT_CID!! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate PWT_CID!!');

RETURN ERRONEOUS_EXIT;
END IF;
end;
begin

EXECUTE IMMEDIATE ('delete from PWT_SDR_DETAILS where


year_month=TO_CHAR(to_date('''|| G_Current_Business_Date ||''',''DD-MON-
RRRR''),''RRRRMM'') ');

end;

begin
EXECUTE IMMEDIATE (' INSERT INTO
PWT_SDR_DETAILS
SELECT
TO_CHAR(to_date('''|| G_Current_Business_Date ||''',''DD-MON-
RRRR''),''RRRRMM'') YEAR_MONTH,
TRIM(T2.FORACID) ACCOUNT_NO,
TRIM(ACCT_NAME) AC_NAME,
TRIM(GL_SUB_HEAD_CODE) GL_CODE,
TRIM(CUST_ID) CUSTOMER_ID,
TRIM(SECU_LINKAGE_TYPE) SECU_LINKAGE_TYPE,
TRIM(T1.ACID) ACID,
TRIM(T1.LIMIT_B2KID) LIMIT_B2KID,
TRIM(SECU_SRL_NUM) SECU_SRL_NUM,
TRIM(T1.DEL_FLG) DEL_FLG,
TRIM(SECU_CODE) SECU_CODE,
TRIM(SECU_TYPE_IND) SECU_TYPE_IND,
TRIM(LIEN_ACID) LIEN_ACID,
TRIM(UNIT_VALUE) UNIT_VALUE,
TRIM(NUM_OF_UNITS) NUM_OF_UNITS,
TRIM(SECU_VALUE) SECU_VALUE,
TRIM(MAX_CEILING_LIM) MAX_CEILING_LIM,
TRIM(ITEM_FREQ_TYPE) ITEM_FREQ_TYPE,
TRIM(DEF_VALUE_OVERRIDE_FLG) DEF_VALUE_OVERRIDE_FLG,
TRIM(T1.FREE_TEXT) FREE_TEXT,
TRIM(T1.CRNCY_CODE) CRNCY_CODE,
TRIM(T1.TS_CNT) TS_CNT,
TRIM(THIRD_PARTY_LIEN_AMT) THIRD_PARTY_LIEN_AMT,
TRIM(MARKET_VALUE) MARKET_VALUE,
TRIM(APPORTIONED_VALUE) APPORTIONED_VALUE,
TRIM(PURCHASE_DATE) PURCHASE_DATE,
TRIM(RECEIVED_DATE) RECEIVED_DATE,
TRIM(WITHDRAW_FLG) WITHDRAW_FLG,
TRIM(LODGE_DATE) LODGE_DATE,
TRIM(WITHDRAW_DATE) WITHDRAW_DATE,
TRIM(T1.ENTITY_CRE_FLG) ENTITY_CRE_FLG,
TRIM(GROSS_VALUE) GROSS_VALUE
FROM
SDR@FINACLEPROD T1,
GAM@FINACLEPROD T2
WHERE T1.ACID = T2.ACID
Union All
SELECT
TO_CHAR(to_date('''|| G_Current_Business_Date ||''',''DD-MON-
RRRR''),''RRRRMM'') YEAR_MONTH,
TRIM(T2.FORACID) ACCOUNT_NO,
TRIM(ACCT_NAME) AC_NAME,
TRIM(GL_SUB_HEAD_CODE) GL_CODE,
TRIM(CUST_ID) CUSTOMER_ID,
TRIM(SECU_LINKAGE_TYPE) SECU_LINKAGE_TYPE,
TRIM(T1.ACID) ACID,
TRIM(T1.LIMIT_B2KID) LIMIT_B2KID,
TRIM(SECU_SRL_NUM) SECU_SRL_NUM,
TRIM(T1.DEL_FLG) DEL_FLG,
TRIM(SECU_CODE) SECU_CODE,
TRIM(SECU_TYPE_IND) SECU_TYPE_IND,
TRIM(LIEN_ACID) LIEN_ACID,
TRIM(UNIT_VALUE) UNIT_VALUE,
TRIM(NUM_OF_UNITS) NUM_OF_UNITS,
TRIM(SECU_VALUE) SECU_VALUE,
TRIM(MAX_CEILING_LIM) MAX_CEILING_LIM,
TRIM(ITEM_FREQ_TYPE) ITEM_FREQ_TYPE,
TRIM(DEF_VALUE_OVERRIDE_FLG) DEF_VALUE_OVERRIDE_FLG,
TRIM(T1.FREE_TEXT) FREE_TEXT,
TRIM(T1.CRNCY_CODE) CRNCY_CODE,
TRIM(T1.TS_CNT) TS_CNT,
TRIM(THIRD_PARTY_LIEN_AMT) THIRD_PARTY_LIEN_AMT,
TRIM(MARKET_VALUE) MARKET_VALUE,
TRIM(APPORTIONED_VALUE) APPORTIONED_VALUE,
TRIM(PURCHASE_DATE) PURCHASE_DATE,
TRIM(RECEIVED_DATE) RECEIVED_DATE,
TRIM(WITHDRAW_FLG) WITHDRAW_FLG,
TRIM(LODGE_DATE) LODGE_DATE,
TRIM(WITHDRAW_DATE) WITHDRAW_DATE,
TRIM(T1.ENTITY_CRE_FLG) ENTITY_CRE_FLG,
TRIM(GROSS_VALUE) GROSS_VALUE
FROM
SDR@FINACLEPROD T1,
GAM@FINACLEPROD T2
WHERE T1.LIEN_ACID = T2.ACID');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The PWT_SDR_DETAILS !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate PWT_SDR_DETAIL !!');

RETURN ERRONEOUS_EXIT;
END IF;
end;

begin

EXECUTE IMMEDIATE ('DELETE FROM PWT_BO_TMP_CREDIT_CARD WHERE


YEAR_MONTH=TO_CHAR(TO_DATE('''|| G_Current_Business_Date ||''',''DD-MON-
RRRR''),''RRRRMM'') ');

end;

begin
EXECUTE IMMEDIATE (' INSERT INTO PWT_BO_TMP_CREDIT_CARD
SELECT
TO_CHAR(TO_DATE('''|| G_Current_Business_Date
||''',''DD-MON-RRRR''),''RRRRMM'') YEAR_MONTH,
FORACID ,
CUST_ID ,
DOC_TYPE ,
NIC ,
CUSTOMER_NAME ,
DOB ,
GENDER ,
COUNTRY_CODE ,
ADD1 ,
ADD2 ,
ADD3 ,
ADD4 ,
ADD5 ,
CARD_NO ,
DATE_OPEN ,
CREDIT_LIMIT ,
ACCOUNT_BALANCE ,
EXPIRY_DATE ,
OVERDUE_AMT ,
PREV_BALANCE ,
PURCHASES ,
INTEREST_CHARGES ,
CARD_TYPE ,
PAYMENTS ,
CARD_STATUS ,
PAYMENT_DATE ,
AVAILABLE_TO_SPEND ,
OUTSTANDING_AUTH ,
STATEMENT_DATE ,
MIN_PAYMENT ,
TOTAL_PAYMENT ,
CARD_CATEGORY ,
CARD_CURRENCY ,
UPLOAD_DATE
FROM
BO_TMP_CREDIT_CARD@IBPROD ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The BO_TMP_CREDIT_CARD !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate BO_TMP_CREDIT_CARD !!');

RETURN ERRONEOUS_EXIT;
END IF;
end;

begin

EXECUTE IMMEDIATE ('DELETE FROM PWT_LHT WHERE


YEAR_MONTH=TO_CHAR(TO_date('''|| G_Current_Business_Date ||''',''DD-MON-
RRRR''),''RRRRMM'') ');

end;

begin
EXECUTE IMMEDIATE (' INSERT INTO PWT_LHT (
COUNTRY,
LE_BOOK,
YEAR_MONTH,
CONTRACT_ID,
ACID,
SERIAL_NUM,
ENTITY_CRE_FLG,
DEL_FLG,
STATUS,
SUPERCEDE_FLG,
APPLICABLE_DATE,
CRNCY_CODE,
SANCT_LIM,
LIM_SANCT_DATE,
LIM_EXP_DATE,
SANCT_LEVL_CODE,
SANCT_AUTH_CODE,
LIM_CREATION_DATE,
LCHG_TIME,
RCRE_TIME,
SOL_ID,
RECORD_INDICATOR_NT ,
RECORD_INDICATOR ,
INTERNAL_STATUS ,
DATE_LAST_MODIFIED ,
DATE_CREATION)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TO_CHAR(to_date('''|| G_Current_Business_Date ||''',''DD-
MON-RRRR''),''RRRRMM'') YEAR_MONTH,
foracid Contract_id ,
T1.ACID ,
SERIAL_NUM ,
T1.ENTITY_CRE_FLG ,
T1.DEL_FLG ,
STATUS ,
SUPERCEDE_FLG ,
APPLICABLE_DATE ,
T1.CRNCY_CODE ,
T1.SANCT_LIM ,
LIM_SANCT_DATE ,
LIM_EXP_DATE ,
SANCT_LEVL_CODE ,
SANCT_AUTH_CODE ,
LIM_CREATION_DATE ,
T1.LCHG_TIME ,
T1.RCRE_TIME ,
T1.SOL_ID ,
7 RECORD_INDICATOR_NT ,
0 RECORD_INDICATOR ,
0 INTERNAL_STATUS ,
SYSDATE DATE_LAST_MODIFIED ,
SYSDATE DATE_CREATION
FROM
LHT@FINACLEPROD T1,GAM@FINACLEPROD T2
WHERE
APPLICABLE_DATE<=to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
AND T1.ACID = T2.ACID
AND STATUS=''A'' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The PWT_LHT !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate PWT_LHT !!');

RETURN ERRONEOUS_EXIT;
END IF;
end;

END IF;

writeLogInfo('Beginning Creation PWT_LLT Table.....');

begin

EXECUTE IMMEDIATE ('DELETE FROM PWT_LLT


WHERE COUNTRY = '||''''||P_Country||'''' ||'
AND LE_BOOK = '||''''||P_Le_Book||'''' ||'
AND BUSINESS_DATE ='''|| G_Current_Business_Date
||''' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

end;

begin
EXECUTE IMMEDIATE (' INSERT INTO PWT_LLT
selecT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(Cust_id) CUSTOMER_ID,
'''|| G_Current_Business_Date ||'''
Business_Date ,
LIMIT_B2KID ,
ENTITY_CRE_FLG ,
DEL_FLG ,
PARENT_LIMIT_B2KID ,
LIMIT_DESC ,
SANCT_LIM ,
DRWNG_POWER ,
DRWNG_POWER_IND ,
LIAB ,
CONTINGENT_LIAB ,
NUM_OF_ACCTS ,
LC_SINGLE_TRAN_FLG ,
FXD_CRNCY_FLG ,
CRNCY_CODE ,
LIM_SANCT_DATE ,
LIM_EXP_DATE ,
SANCT_LEVL_CODE ,
SANCT_AUTH_CODE ,
FREE_TEXT ,
SECURED_LIAB ,
BG_EFFECTIVE_LIAB ,
UTIL_LIMIT_FUND_BASED ,
UTIL_LIMIT_NON_FUND_BASED ,
IMPLICIT_NODE_FLG ,
LAST_PURGE_DATE ,
SANCT_LIM_AS_ON_PURGE_DATE ,
DRWNG_POWER_AS_ON_PURGE_DATE ,
LIAB_AS_ON_PURGE_DATE ,
LIMIT_PREFIX ,
LIMIT_SUFFIX ,
'''|| G_Current_Business_Date ||'''
Feed_date,
''LLT'' Product
from LLT@FINACLEPROD ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The PWT_LLT !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate PWT_LLT !!');

RETURN ERRONEOUS_EXIT;
END IF;
end;

writeLogInfo('Beginning Creation PWT_BGM Table.....');

begin

EXECUTE IMMEDIATE ('DELETE FROM PWT_BGM


WHERE COUNTRY = '||''''||P_Country||'''' ||'
AND LE_BOOK = '||''''||P_Le_Book||'''' ||'
AND BUSINESS_DATE ='''|| G_Current_Business_Date
||''' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

end;

begin
EXECUTE IMMEDIATE (' INSERT INTO PWT_BGM (
COUNTRY ,
LE_BOOK ,
BUSINESS_DATE ,
SOL_ID ,
BG_SRL_NUM ,
FUNC_CODE ,
BG_TYPE ,
BG_CLASS ,
CUST_ID ,
LIMIT_B2KID ,
BG_AMT ,
CRNCY_CODE ,
RATE_CODE ,
RATE ,
ISSUE_DATE ,
EFFECTIVE_DATE ,
BG_PERD_MTHS ,
BG_PERD_DAYS ,
CLAIM_PERD_MTHS ,
CLAIM_PERD_DAYS ,
BG_EXPIRY_DATE ,
CLAIM_EXPIRY_DATE ,
OPER_ACID ,
ADVN_ACID ,
BENEFICIARY_TYPE ,
BENEFICIARY_NAME ,
BENEFICIARY_ADDR_1 ,
BENEFICIARY_ADDR_2 ,
CITY_CODE ,
STATE_CODE ,
CNTRY_CODE ,
PIN_CODE ,
TRANSIT_PERD ,
INSTLMNT_FREQ_TYPE ,
INSTLMNT_FREQ_WEEK_NUM ,
INSTLMNT_FREQ_WEEK_DAY ,
INSTLMNT_FREQ_START_DD ,
INSTLMNT_HLDY_STAT ,
AMEND_RMKS ,
NUM_OF_AMENDS ,
FRUCTIFIED_LIAB ,
BG_STATUS ,
INVOCN_DATE ,
REVERSAL_DATE ,
CLOSE_DATE ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
INVOCN_LODGE_DATE ,
FD_REF_NUM ,
PURPOSE_OF_BG ,
FORWARD_CONTRACT_REF_NUM ,
PROBABLE_DATE_OF_SHPMNT ,
ACTUAL_DATE_OF_SHPMNT ,
IMPORT_LICENSE_NUM ,
IMPORT_LICENSE_EXPIRY_DATE ,
COUNTER_BG_DTLS ,
BANK_CODE ,
BR_CODE ,
BG_ADEQ_TYPE ,
BG_MR_BASE_RATE_CODE ,
BG_MR_BASE_RATE ,
BG_MR_OPER_RATE_CODE ,
BG_MR_OPER_RATE ,
BG_CH_BASE_RATE_CODE ,
BG_CH_BASE_RATE ,
BG_CH_OPER_RATE_CODE ,
BG_CH_OPER_RATE ,
BG_B2KID ,
NMA_KEY_TYPE ,
NMA_KEY_ID ,
FREE_CODE1 ,
FREE_CODE2 ,
FREE_CODE3 ,
CONTINGENT_AMT ,
CONTINGENT_CRNCY_CODE ,
LIMIT_PCNT ,
OVDUE_CHRG_COLL_UPTO ,
CONT_LIAB_ACID ,
CONT_LIAB_CONTRA_ACID ,
BG_LIAB_AMT ,
TS_CNT ,
TRAN_SOL_ID ,
FWC_SOL_ID ,
INTERNAL_LIMITS_REQD ,
PAYSYS_ID ,
PAYSYS_FREE_CODE1 ,
PAYSYS_FREE_CODE2 ,
PAYSYS_FREE_CODE3 ,
PAYSYS_FREE_CODE4 ,
PAYSYS_FREE_CODE5 ,
EVENT_ID ,
INTERNAL_LIMIT_UPD_FLG ,
APPLICABLE_RULE ,
APPLICABLE_RULE_DTLS )
selecT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
'''|| G_Current_Business_Date ||'''
Business_Date ,
SOL_ID ,
BG_SRL_NUM ,
FUNC_CODE ,
BG_TYPE ,
BG_CLASS ,
CUST_ID ,
LIMIT_B2KID ,
BG_AMT ,
CRNCY_CODE ,
RATE_CODE ,
RATE ,
ISSUE_DATE ,
EFFECTIVE_DATE ,
BG_PERD_MTHS ,
BG_PERD_DAYS ,
CLAIM_PERD_MTHS ,
CLAIM_PERD_DAYS ,
BG_EXPIRY_DATE ,
CLAIM_EXPIRY_DATE ,
OPER_ACID ,
ADVN_ACID ,
BENEFICIARY_TYPE ,
BENEFICIARY_NAME ,
BENEFICIARY_ADDR_1 ,
BENEFICIARY_ADDR_2 ,
CITY_CODE ,
STATE_CODE ,
CNTRY_CODE ,
PIN_CODE ,
TRANSIT_PERD ,
INSTLMNT_FREQ_TYPE ,
INSTLMNT_FREQ_WEEK_NUM ,
INSTLMNT_FREQ_WEEK_DAY ,
INSTLMNT_FREQ_START_DD ,
INSTLMNT_HLDY_STAT ,
AMEND_RMKS ,
NUM_OF_AMENDS ,
FRUCTIFIED_LIAB ,
BG_STATUS ,
INVOCN_DATE ,
REVERSAL_DATE ,
CLOSE_DATE ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
INVOCN_LODGE_DATE ,
FD_REF_NUM ,
PURPOSE_OF_BG ,
FORWARD_CONTRACT_REF_NUM ,
PROBABLE_DATE_OF_SHPMNT ,
ACTUAL_DATE_OF_SHPMNT ,
IMPORT_LICENSE_NUM ,
IMPORT_LICENSE_EXPIRY_DATE ,
COUNTER_BG_DTLS ,
BANK_CODE ,
BR_CODE ,
BG_ADEQ_TYPE ,
BG_MR_BASE_RATE_CODE ,
BG_MR_BASE_RATE ,
BG_MR_OPER_RATE_CODE ,
BG_MR_OPER_RATE ,
BG_CH_BASE_RATE_CODE ,
BG_CH_BASE_RATE ,
BG_CH_OPER_RATE_CODE ,
BG_CH_OPER_RATE ,
BG_B2KID ,
NMA_KEY_TYPE ,
NMA_KEY_ID ,
FREE_CODE1 ,
FREE_CODE2 ,
FREE_CODE3 ,
CONTINGENT_AMT ,
CONTINGENT_CRNCY_CODE ,
LIMIT_PCNT ,
OVDUE_CHRG_COLL_UPTO ,
CONT_LIAB_ACID ,
CONT_LIAB_CONTRA_ACID ,
BG_LIAB_AMT ,
TS_CNT ,
TRAN_SOL_ID ,
FWC_SOL_ID ,
INTERNAL_LIMITS_REQD ,
PAYSYS_ID ,
PAYSYS_FREE_CODE1 ,
PAYSYS_FREE_CODE2 ,
PAYSYS_FREE_CODE3 ,
PAYSYS_FREE_CODE4 ,
PAYSYS_FREE_CODE5 ,
EVENT_ID ,
INTERNAL_LIMIT_UPD_FLG ,
APPLICABLE_RULE ,
APPLICABLE_RULE_DTLS
FROM BGM@FINACLEPROD WHERE CLOSE_DATE IS NULL ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The PWT_BGM !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate PWT_BGM !!');

RETURN ERRONEOUS_EXIT;
END IF;
end;

writeLogInfo('Beginning Creation PWT_DCMM Table.....');

begin

EXECUTE IMMEDIATE ('DELETE FROM PWT_DCMM


WHERE COUNTRY = '||''''||P_Country||'''' ||'
AND LE_BOOK = '||''''||P_Le_Book||'''' ||'
AND BUSINESS_DATE ='''|| G_Current_Business_Date
||''' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

end;

begin
EXECUTE IMMEDIATE (' INSERT INTO PWT_DCMM (
COUNTRY ,
LE_BOOK ,
BUSINESS_DATE ,
SOL_ID
,
DC_REF_NUM ,
ENTITY_CRE_FLG ,
DEL_FLG ,
FUNC_CODE ,
APPLICANT_NAME ,
DC_REG_TYPE ,
REVOC_FLG ,
ACTL_REVOLVING_FLG ,
ACTL_MAX_NUM_REINST ,
NUM_REINST ,
DATE_OPND ,
DATE_CLSD ,
EXPIRY_DATE ,
OUR_PARTY_LIMIT_B2KID ,
OUR_PARTY_ACID ,
ACTL_CRNCY_CODE ,
RATECODE ,
RATE ,
OPEN_VALUE ,
ADVANCE_VALUE ,
CURRENT_VALUE ,
ACTL_USANCE ,
LAST_SHIP_DATE ,
ACTL_NEGOT_DAYS ,
NUM_AMENDMENTS ,
NOSTRO_ACCT_NUM ,
ACTL_TOLERANCE_PCNT ,
ACTL_DC_CHRG_CODE ,
DC_NOBILL_UTIL_AMT ,
DC_BILL_UTIL_AMT ,
DC_CARVED_AMT ,
DC_NOBILL_FRUCT_AMT ,
DC_BILL_FRUCT_AMT ,
DC_REINST_AMT ,
INTEREST_ADDTNL_AMT ,
INTEREST_ADDTNL_RATE ,
DC_B2KID ,
REINST_TYPE ,
REINST_DAY ,
ACTL_BACK_TO_BACK_FLG ,
ACTL_TRANSFERRABLE_FLG ,
RED_CLAUSE_FLG ,
DEFERRED_FLG ,
STAND_BY_FLG ,
BACK_TO_BACK_DC_REF_NUM ,
FRWRD_CNTRCT_NUM ,
FD_REF_NUM ,
OTHER_BANK_REF_NUM ,
OTHER_BANK_REF_DATE ,
TRANSFER_DC_REF_NUM ,
PURCH_ORDER_NUM ,
PURCH_ORDER_DATE ,
PURCH_ORDER_AMEND_NUM ,
PURCH_ORDER_AMEND_DATE ,
LICENCE_CODE ,
ACTL_ESTABLISH_MODE_CODE ,
ACTL_FOLLOWER_MODE_CODE ,
ACTL_SHIPMENT_MODE_CODE ,
COMMODITY_CODE ,
PORT_OF_ORIGIN ,
PORT_OF_DESTIN ,
CNTRY_ORIGIN_1 ,
CNTRY_ORIGIN_2 ,
CNTRY_VALID_1 ,
CNTRY_VALID_2 ,
OUTSIDE_CHARG_IND ,
CONFIRM_CHARG_IND ,
ADV_CHARG_IND ,
RESTRICT_ON_OTH_BANK_FLG ,
HOUSE_AIRWAYS_FLG ,
TRANSHIPMENT_FLG ,
PARTSHIPMENT_FLG ,
CONFIRMATION_REQD_FLG ,
CONFIRMED_FLG ,
CONFIRMED_BY_IND ,
FOREIGN_LOAN_FLG ,
PRE_ADVICED_FLG ,
ACTL_AGENT_CODE ,
AGENCY_COMMN_PCNT ,
PAYMENT_DETAILS_1 ,
PAYMENT_DETAILS_2 ,
PAYMENT_DETAILS_3 ,
PAYMENT_DETAILS_4 ,
DRAWEE_DETAILS ,
COMM_DETAILS_TEXT_1 ,
COMM_DETAILS_TEXT_2 ,
COMM_DETAILS_TEXT_3 ,
COMM_DETAILS_TEXT_4 ,
LICENCE_DETAILS_TEXT_1 ,
LICENCE_DETAILS_TEXT_2 ,
LICENCE_DETAILS_TEXT_3 ,
LICENCE_DETAILS_TEXT_4 ,
DC_TEXT_ID ,
SHIPMENT_TERMS ,
PLACE_OF_EXPIRY ,
ISSU_PARTY_CODE ,
BENEF_PARTY_CODE ,
ISSU_BANK_CODE ,
ISSU_BRANCH_CODE ,
CORRESP_BANK_CODE ,
CORRESP_BRANCH_CODE ,
ADVISING_BANK_CODE ,
ADVISING_BRANCH_CODE ,
NEGOT_BANK_CODE ,
NEGOT_BRANCH_CODE ,
REIMB_BANK_CODE ,
REIMB_BRANCH_CODE ,
TENOR_DESC ,
INTEREST_DETAIL ,
BENEF_CHRGS ,
AVAILABLE_WITH ,
AVAILABLE_BY ,
PRE_ADVICED_DATE ,
TRANSFEREE_CODE ,
DC_CONTRA_ACID ,
DC_CONST_ACID ,
CAPITAL_ADEQ_CODE ,
CONT_LIAB_AMT ,
CONT_LIAB_CRNCY ,
INTERNAL_EXPIRY_DATE ,
BILL_LODG_AMT ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
SHIPMENT_TERMS_DESC ,
CHRG_REF_CODE_1 ,
CHRG_REF_CODE_2 ,
CHRG_REF_CODE_3 ,
TS_CNT ,
PC_MARGIN_PCNT ,
TRAN_SOL_ID ,
FWC_SOL_ID ,
INTERNAL_LIMITS_REQD ,
LIMIT_PCNT ,
NEGATIVE_TOL_PCNT ,
PAYSYS_ID ,
PAYSYS_FREE_CODE1 ,
PAYSYS_FREE_CODE2 ,
PAYSYS_FREE_CODE3 ,
PAYSYS_FREE_CODE4 ,
PAYSYS_FREE_CODE5 ,
PRE_ADVICED_REF ,
INTERNAL_LIMIT_UPD_FLG ,
APPLICABLE_RULE ,
APPLICABLE_RULE_SUB ,
APPLICABLE_RULE_40F )
selecT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
'''|| G_Current_Business_Date ||'''
Business_Date ,
SOL_ID
,
DC_REF_NUM ,
ENTITY_CRE_FLG ,
DEL_FLG ,
FUNC_CODE ,
APPLICANT_NAME ,
DC_REG_TYPE ,
REVOC_FLG ,
ACTL_REVOLVING_FLG ,
ACTL_MAX_NUM_REINST ,
NUM_REINST ,
DATE_OPND ,
DATE_CLSD ,
EXPIRY_DATE ,
OUR_PARTY_LIMIT_B2KID ,
OUR_PARTY_ACID ,
ACTL_CRNCY_CODE ,
RATECODE ,
RATE ,
OPEN_VALUE ,
ADVANCE_VALUE ,
CURRENT_VALUE ,
ACTL_USANCE ,
LAST_SHIP_DATE ,
ACTL_NEGOT_DAYS ,
NUM_AMENDMENTS ,
NOSTRO_ACCT_NUM ,
ACTL_TOLERANCE_PCNT ,
ACTL_DC_CHRG_CODE ,
DC_NOBILL_UTIL_AMT ,
DC_BILL_UTIL_AMT ,
DC_CARVED_AMT ,
DC_NOBILL_FRUCT_AMT ,
DC_BILL_FRUCT_AMT ,
DC_REINST_AMT ,
INTEREST_ADDTNL_AMT ,
INTEREST_ADDTNL_RATE ,
DC_B2KID ,
REINST_TYPE ,
REINST_DAY ,
ACTL_BACK_TO_BACK_FLG ,
ACTL_TRANSFERRABLE_FLG ,
RED_CLAUSE_FLG ,
DEFERRED_FLG ,
STAND_BY_FLG ,
BACK_TO_BACK_DC_REF_NUM ,
FRWRD_CNTRCT_NUM ,
FD_REF_NUM ,
OTHER_BANK_REF_NUM ,
OTHER_BANK_REF_DATE ,
TRANSFER_DC_REF_NUM ,
PURCH_ORDER_NUM ,
PURCH_ORDER_DATE ,
PURCH_ORDER_AMEND_NUM ,
PURCH_ORDER_AMEND_DATE ,
LICENCE_CODE ,
ACTL_ESTABLISH_MODE_CODE ,
ACTL_FOLLOWER_MODE_CODE ,
ACTL_SHIPMENT_MODE_CODE ,
COMMODITY_CODE ,
PORT_OF_ORIGIN ,
PORT_OF_DESTIN ,
CNTRY_ORIGIN_1 ,
CNTRY_ORIGIN_2 ,
CNTRY_VALID_1 ,
CNTRY_VALID_2 ,
OUTSIDE_CHARG_IND ,
CONFIRM_CHARG_IND ,
ADV_CHARG_IND ,
RESTRICT_ON_OTH_BANK_FLG ,
HOUSE_AIRWAYS_FLG ,
TRANSHIPMENT_FLG ,
PARTSHIPMENT_FLG ,
CONFIRMATION_REQD_FLG ,
CONFIRMED_FLG ,
CONFIRMED_BY_IND ,
FOREIGN_LOAN_FLG ,
PRE_ADVICED_FLG ,
ACTL_AGENT_CODE ,
AGENCY_COMMN_PCNT ,
PAYMENT_DETAILS_1 ,
PAYMENT_DETAILS_2 ,
PAYMENT_DETAILS_3 ,
PAYMENT_DETAILS_4 ,
DRAWEE_DETAILS ,
COMM_DETAILS_TEXT_1 ,
COMM_DETAILS_TEXT_2 ,
COMM_DETAILS_TEXT_3 ,
COMM_DETAILS_TEXT_4 ,
LICENCE_DETAILS_TEXT_1 ,
LICENCE_DETAILS_TEXT_2 ,
LICENCE_DETAILS_TEXT_3 ,
LICENCE_DETAILS_TEXT_4 ,
DC_TEXT_ID ,
SHIPMENT_TERMS ,
PLACE_OF_EXPIRY ,
ISSU_PARTY_CODE ,
BENEF_PARTY_CODE ,
ISSU_BANK_CODE ,
ISSU_BRANCH_CODE ,
CORRESP_BANK_CODE ,
CORRESP_BRANCH_CODE ,
ADVISING_BANK_CODE ,
ADVISING_BRANCH_CODE ,
NEGOT_BANK_CODE ,
NEGOT_BRANCH_CODE ,
REIMB_BANK_CODE ,
REIMB_BRANCH_CODE ,
TENOR_DESC ,
INTEREST_DETAIL ,
BENEF_CHRGS ,
AVAILABLE_WITH ,
AVAILABLE_BY ,
PRE_ADVICED_DATE ,
TRANSFEREE_CODE ,
DC_CONTRA_ACID ,
DC_CONST_ACID ,
CAPITAL_ADEQ_CODE ,
CONT_LIAB_AMT ,
CONT_LIAB_CRNCY ,
INTERNAL_EXPIRY_DATE ,
BILL_LODG_AMT ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
SHIPMENT_TERMS_DESC ,
CHRG_REF_CODE_1 ,
CHRG_REF_CODE_2 ,
CHRG_REF_CODE_3 ,
TS_CNT ,
PC_MARGIN_PCNT ,
TRAN_SOL_ID ,
FWC_SOL_ID ,
INTERNAL_LIMITS_REQD ,
LIMIT_PCNT ,
NEGATIVE_TOL_PCNT ,
PAYSYS_ID ,
PAYSYS_FREE_CODE1 ,
PAYSYS_FREE_CODE2 ,
PAYSYS_FREE_CODE3 ,
PAYSYS_FREE_CODE4 ,
PAYSYS_FREE_CODE5 ,
PRE_ADVICED_REF ,
INTERNAL_LIMIT_UPD_FLG ,
APPLICABLE_RULE ,
APPLICABLE_RULE_SUB ,
APPLICABLE_RULE_40F
FROM DCMM@FINACLEPROD WHERE DATE_CLSD IS NULL ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The PWT_DCMM !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate PWT_DCMM !!');

RETURN ERRONEOUS_EXIT;
END IF;
end;

writeLogInfo('Beginning Creation PWT_FBM Table.....');

begin

EXECUTE IMMEDIATE ('DELETE FROM PWT_FBM


WHERE COUNTRY = '||''''||P_Country||'''' ||'
AND LE_BOOK = '||''''||P_Le_Book||'''' ||'
AND BUSINESS_DATE ='''|| G_Current_Business_Date
||''' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

end;

begin
EXECUTE IMMEDIATE (' INSERT INTO PWT_FBM (
COUNTRY ,
LE_BOOK ,
BUSINESS_DATE ,
SOL_ID ,
BILL_ID ,
ENTITY_CRE_FLG ,
DEL_FLG ,
VERIFN_IND ,
BILL_FUNC_CODE ,
REG_TYPE ,
REG_SUB_TYPE ,
UNFORMATTED_BILL_ID ,
BILL_GROUP_CODE ,
BILL_DATE ,
BILL_CNTRY_CODE ,
BILL_CRNCY_CODE ,
ORG_BILL_CRNCY_CODE ,
BILL_AMT ,
BILL_AMT_INR ,
BILL_LIAB ,
BILL_LIAB_INR ,
BILL_STAT ,
CNTRCT_READY_FLG ,
REF_BILL_ID ,
UNDER_LC_FLG ,
PARTY_CODE ,
PARTY_NAME ,
PARTY_ADDR1 ,
PARTY_ADDR2 ,
PARTY_ADDR3 ,
PARTY_CNTRY_CODE ,
OTHER_PARTY_CODE ,
OTHER_PARTY_NAME ,
OTHER_PARTY_ADDR_1 ,
OTHER_PARTY_ADDR_2 ,
OTHER_PARTY_ADDR_3 ,
OTHER_PARTY_CNTRY_CODE ,
CORR_COLL_BANK_CODE ,
CORR_COLL_BR_CODE ,
DRAWEE_BANK_CODE ,
DRAWEE_BR_CODE ,
DRAWEE_BANK_NAME ,
DRAWEE_BANK_ADDR_1 ,
DRAWEE_BANK_ADDR_2 ,
DRAWEE_BANK_ADDR_3 ,
DRAWEE_BANK_CNTRY_CODE ,
DUE_DT_CALC_IND ,
TRANSIT_PERD ,
GRACE_PERD ,
USANCE_MONTHS ,
USANCE_DAYS ,
USANCE_DESC ,
DELINK_ACID ,
DUE_DATE ,
NEXT_MESG_NUM ,
UNDRAWN_BAL_DRAWN_DATE ,
LODG_DATE ,
DELINKED_DATE ,
DELINKING_DATE ,
CLS_FLG ,
CLS_DATE ,
ACCEPT_DATE ,
REMINDER_NUM_SENT ,
NEXT_REMINDER_DATE ,
LAST_REMINDER_SENT_DATE ,
MARGIN_HELD_AMT ,
COMM_AMT_TBL_CODE ,
COMM_COLL_IN_HC ,
FR_BANK_CHRG ,
OTHER_BANK_CHRG ,
OUR_P_T_CHRGS ,
OUR_P_T ,
OUR_COMM ,
OUR_COMM_AMT ,
MODE_OF_PYMT ,
MODE_OF_ADVC ,
PAYABLE_PLACE ,
CDF_DETAILS ,
PURPOSE_OF_ADV ,
ENCASHMENT_DET ,
NOTL_CONV_RATE ,
NOTL_CONV_RATE_CODE ,
AGENCY_COMM_CONV_RATE ,
AGENCY_COMM_CONV_RATE_CODE ,
FC_INT_CONV_RATE ,
FC_INT_CONV_RATE_CODE ,
DCLRD_EEFC_AMT ,
EEFC_ACID ,
NOSTRO_ACCT_NUM ,
NOSTRO_FD_CODE ,
BP_ACID ,
PASSPORT_DET ,
PURPOSE_OF_REM ,
PS_IND ,
FD_REF_NUM ,
FD_REF_DATE ,
FB_REF_NUM ,
FB_REF_DATE ,
RBI_PERMIT_DET ,
INVT_LOCN_CODE ,
INVT_CLASS ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
EEFC_AMT ,
CUM_EEFC_AMT ,
RBI_AD_FLG ,
CONVERT_RATE_CRNCY_CODE ,
BP_ACID_CRNCY_CODE ,
MARGIN_HELD_CRNCY_CODE ,
TOT_MARGIN_RELEASED_AMT ,
LC_CNTGNT_REVERSAL_TRAN_ID ,
LC_BILL_ACCPT_TRAN_ID ,
LST_LC_BIL_ACPT_RVSL_TRN_ID ,
DELINK_CRNCY_CODE ,
BILL_TRAN_TYPE ,
NOSTRO_FD_BANK_CODE ,
CASH_LET_REF ,
BILL_LIAB_CRNCY ,
BP_LIAB ,
BP_LIAB_CRNCY ,
BILL_LIAB_HC_EQ ,
FORMATTED_BILL_ID ,
BILL_B2K_ID ,
INT_ON_LIAB_FLG ,
INT_CALC_CRNCY_CODE ,
INTERMEDIARY_TRADE ,
FREE_CODE_1 ,
FREE_CODE_2 ,
FREE_CODE_3 ,
DATE_OF_REMIT ,
OSTD_REASON_CODE ,
AGAINST_IMPORT_EXPORT ,
ORG_DOC_RECVD ,
OPER_ACID ,
OPER_CHARGE_ACID ,
NOTIONAL_DUE_DATE ,
TS_CNT ,
CONST_LIAB_ACID ,
CONTRA_LIAB_ACID ,
CONT_RATE_CODE ,
CONT_RATE ,
CONT_CRNCY ,
CONT_LIAB_AMT ,
TRAN_SOL_ID ,
FB_INT_AMT ,
INTERNAL_LIMITS_REQD ,
REMIT_MODE ,
MTENOR_VERIFN_IND ,
MTENOR_BILL_ID ,
REAR_END_INT_FLG ,
TRANSFER_DATE ,
INTERNAL_LIMIT_UPD_FLG ,
EXTENSION_AUTH )
selecT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
'''|| G_Current_Business_Date ||'''
Business_Date ,
SOL_ID ,
BILL_ID ,
ENTITY_CRE_FLG ,
DEL_FLG ,
VERIFN_IND ,
BILL_FUNC_CODE ,
REG_TYPE ,
REG_SUB_TYPE ,
UNFORMATTED_BILL_ID ,
BILL_GROUP_CODE ,
BILL_DATE ,
BILL_CNTRY_CODE ,
BILL_CRNCY_CODE ,
ORG_BILL_CRNCY_CODE ,
BILL_AMT ,
BILL_AMT_INR ,
BILL_LIAB ,
BILL_LIAB_INR ,
BILL_STAT ,
CNTRCT_READY_FLG ,
REF_BILL_ID ,
UNDER_LC_FLG ,
PARTY_CODE ,
PARTY_NAME ,
PARTY_ADDR1 ,
PARTY_ADDR2 ,
PARTY_ADDR3 ,
PARTY_CNTRY_CODE ,
OTHER_PARTY_CODE ,
OTHER_PARTY_NAME ,
OTHER_PARTY_ADDR_1 ,
OTHER_PARTY_ADDR_2 ,
OTHER_PARTY_ADDR_3 ,
OTHER_PARTY_CNTRY_CODE ,
CORR_COLL_BANK_CODE ,
CORR_COLL_BR_CODE ,
DRAWEE_BANK_CODE ,
DRAWEE_BR_CODE ,
DRAWEE_BANK_NAME ,
DRAWEE_BANK_ADDR_1 ,
DRAWEE_BANK_ADDR_2 ,
DRAWEE_BANK_ADDR_3 ,
DRAWEE_BANK_CNTRY_CODE ,
DUE_DT_CALC_IND ,
TRANSIT_PERD ,
GRACE_PERD ,
USANCE_MONTHS ,
USANCE_DAYS ,
USANCE_DESC ,
DELINK_ACID ,
DUE_DATE ,
NEXT_MESG_NUM ,
UNDRAWN_BAL_DRAWN_DATE ,
LODG_DATE ,
DELINKED_DATE ,
DELINKING_DATE ,
CLS_FLG ,
CLS_DATE ,
ACCEPT_DATE ,
REMINDER_NUM_SENT ,
NEXT_REMINDER_DATE ,
LAST_REMINDER_SENT_DATE ,
MARGIN_HELD_AMT ,
COMM_AMT_TBL_CODE ,
COMM_COLL_IN_HC ,
FR_BANK_CHRG ,
OTHER_BANK_CHRG ,
OUR_P_T_CHRGS ,
OUR_P_T ,
OUR_COMM ,
OUR_COMM_AMT ,
MODE_OF_PYMT ,
MODE_OF_ADVC ,
PAYABLE_PLACE ,
CDF_DETAILS ,
PURPOSE_OF_ADV ,
ENCASHMENT_DET ,
NOTL_CONV_RATE ,
NOTL_CONV_RATE_CODE ,
AGENCY_COMM_CONV_RATE ,
AGENCY_COMM_CONV_RATE_CODE ,
FC_INT_CONV_RATE ,
FC_INT_CONV_RATE_CODE ,
DCLRD_EEFC_AMT ,
EEFC_ACID ,
NOSTRO_ACCT_NUM ,
NOSTRO_FD_CODE ,
BP_ACID ,
PASSPORT_DET ,
PURPOSE_OF_REM ,
PS_IND ,
FD_REF_NUM ,
FD_REF_DATE ,
FB_REF_NUM ,
FB_REF_DATE ,
RBI_PERMIT_DET ,
INVT_LOCN_CODE ,
INVT_CLASS ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
EEFC_AMT ,
CUM_EEFC_AMT ,
RBI_AD_FLG ,
CONVERT_RATE_CRNCY_CODE ,
BP_ACID_CRNCY_CODE ,
MARGIN_HELD_CRNCY_CODE ,
TOT_MARGIN_RELEASED_AMT ,
LC_CNTGNT_REVERSAL_TRAN_ID ,
LC_BILL_ACCPT_TRAN_ID ,
LST_LC_BIL_ACPT_RVSL_TRN_ID ,
DELINK_CRNCY_CODE ,
BILL_TRAN_TYPE ,
NOSTRO_FD_BANK_CODE ,
CASH_LET_REF ,
BILL_LIAB_CRNCY ,
BP_LIAB ,
BP_LIAB_CRNCY ,
BILL_LIAB_HC_EQ ,
FORMATTED_BILL_ID ,
BILL_B2K_ID ,
INT_ON_LIAB_FLG ,
INT_CALC_CRNCY_CODE ,
INTERMEDIARY_TRADE ,
FREE_CODE_1 ,
FREE_CODE_2 ,
FREE_CODE_3 ,
DATE_OF_REMIT ,
OSTD_REASON_CODE ,
AGAINST_IMPORT_EXPORT ,
ORG_DOC_RECVD ,
OPER_ACID ,
OPER_CHARGE_ACID ,
NOTIONAL_DUE_DATE ,
TS_CNT ,
CONST_LIAB_ACID ,
CONTRA_LIAB_ACID ,
CONT_RATE_CODE ,
CONT_RATE ,
CONT_CRNCY ,
CONT_LIAB_AMT ,
TRAN_SOL_ID ,
FB_INT_AMT ,
INTERNAL_LIMITS_REQD ,
REMIT_MODE ,
MTENOR_VERIFN_IND ,
MTENOR_BILL_ID ,
REAR_END_INT_FLG ,
TRANSFER_DATE ,
INTERNAL_LIMIT_UPD_FLG ,
EXTENSION_AUTH
FROM FBM@FINACLEPROD WHERE CLS_DATE IS NULL ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The PWT_FBM !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate PWT_FBM !!');

RETURN ERRONEOUS_EXIT;
END IF;
end;

writeLogInfo('Beginning Creation PWT_UPR Table.....');

begin

EXECUTE IMMEDIATE ('DELETE FROM PWT_UPR


WHERE COUNTRY = '||''''||P_Country||'''' ||'
AND LE_BOOK = '||''''||P_Le_Book||'''' ||'
AND BUSINESS_DATE ='''|| G_Current_Business_Date
||''' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

end;

begin

writeLogInfo('INSERT INTO PWT_UPR (


COUNTRY ,
LE_BOOK ,
BUSINESS_DATE ,
USER_ID ,
DEL_FLG ,
USER_WORK_CLASS ,
SOL_ID ,
USER_SOL_TENOR ,
REMOTE_ACCESS_FLG ,
USER_MAX_INACTIVE_TIME ,
USER_ACCT_EXPY_DATE ,
USER_PW_EXPY_DATE ,
AUTH_USER_ID ,
TOT_MOD_TIMES ,
USER_APPL_NAME ,
USER_DISABLED_FROM_DATE ,
USER_DISABLED_UPTO_DATE ,
NEW_USER_FLG ,
USER_PW ,
USER_EMP_ID ,
USER_TEMP_WORK_CLASS ,
USER_TMP_WRK_CLASS_EFF_UPTO ,
USER_LOGGED_ON_FLG ,
USER_LOGIN_TIME_LOW ,
USER_LOGIN_TIME_HIGH ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
APP_LANG_CODE ,
DEFAULT_TERM_ID ,
VIRTUAL_FLG ,
PROXY_POST_ALLWD ,
TS_CNT ,
ROLE_ID ,
ENTITY_CRE_FLG )
selecT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
'''|| G_Current_Business_Date ||'''
Business_Date ,
USER_ID ,
DEL_FLG ,
USER_WORK_CLASS ,
SOL_ID ,
USER_SOL_TENOR ,
REMOTE_ACCESS_FLG ,
USER_MAX_INACTIVE_TIME ,
USER_ACCT_EXPY_DATE ,
USER_PW_EXPY_DATE ,
AUTH_USER_ID ,
TOT_MOD_TIMES ,
USER_APPL_NAME ,
USER_DISABLED_FROM_DATE ,
USER_DISABLED_UPTO_DATE ,
NEW_USER_FLG ,
USER_PW ,
USER_EMP_ID ,
USER_TEMP_WORK_CLASS ,
USER_TMP_WRK_CLASS_EFF_UPTO ,
USER_LOGGED_ON_FLG ,
USER_LOGIN_TIME_LOW ,
USER_LOGIN_TIME_HIGH ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
APP_LANG_CODE ,
DEFAULT_TERM_ID ,
VIRTUAL_FLG ,
PROXY_POST_ALLWD ,
TS_CNT ,
ROLE_ID ,
ENTITY_CRE_FLG
FROM UPR' || V_DB_Link || ' ');

EXECUTE IMMEDIATE ('INSERT INTO PWT_UPR (


COUNTRY ,
LE_BOOK ,
BUSINESS_DATE ,
USER_ID ,
DEL_FLG ,
USER_WORK_CLASS ,
SOL_ID ,
USER_SOL_TENOR ,
REMOTE_ACCESS_FLG ,
USER_MAX_INACTIVE_TIME ,
USER_ACCT_EXPY_DATE ,
USER_PW_EXPY_DATE ,
AUTH_USER_ID ,
TOT_MOD_TIMES ,
USER_APPL_NAME ,
USER_DISABLED_FROM_DATE ,
USER_DISABLED_UPTO_DATE ,
NEW_USER_FLG ,
USER_PW ,
USER_EMP_ID ,
USER_TEMP_WORK_CLASS ,
USER_TMP_WRK_CLASS_EFF_UPTO ,
USER_LOGGED_ON_FLG ,
USER_LOGIN_TIME_LOW ,
USER_LOGIN_TIME_HIGH ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
APP_LANG_CODE ,
DEFAULT_TERM_ID ,
VIRTUAL_FLG ,
PROXY_POST_ALLWD ,
TS_CNT ,
ROLE_ID ,
ENTITY_CRE_FLG )
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
'''|| G_Current_Business_Date ||'''
Business_Date ,
USER_ID ,
DEL_FLG ,
USER_WORK_CLASS ,
SOL_ID ,
USER_SOL_TENOR ,
REMOTE_ACCESS_FLG ,
USER_MAX_INACTIVE_TIME ,
USER_ACCT_EXPY_DATE ,
USER_PW_EXPY_DATE ,
AUTH_USER_ID ,
TOT_MOD_TIMES ,
USER_APPL_NAME ,
USER_DISABLED_FROM_DATE ,
USER_DISABLED_UPTO_DATE ,
NEW_USER_FLG ,
USER_PW ,
USER_EMP_ID ,
USER_TEMP_WORK_CLASS ,
USER_TMP_WRK_CLASS_EFF_UPTO ,
USER_LOGGED_ON_FLG ,
USER_LOGIN_TIME_LOW ,
USER_LOGIN_TIME_HIGH ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
APP_LANG_CODE ,
DEFAULT_TERM_ID ,
VIRTUAL_FLG ,
PROXY_POST_ALLWD ,
TS_CNT ,
ROLE_ID ,
ENTITY_CRE_FLG
FROM UPR' || V_DB_Link || ' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The PWT_UPR !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate PWT_UPR !!');

RETURN ERRONEOUS_EXIT;
END IF;
end;
writeLogInfo('Beginning Creation PWT_GET Table.....');

begin

EXECUTE IMMEDIATE ('DELETE FROM PWT_GET


WHERE COUNTRY = '||''''||P_Country||'''' ||'
AND LE_BOOK = '||''''||P_Le_Book||'''' ||'
AND BUSINESS_DATE ='''|| G_Current_Business_Date
||''' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

end;

begin

writeLogInfo(' INSERT INTO PWT_GET (


COUNTRY ,
LE_BOOK ,
BUSINESS_DATE ,
EMP_ID ,
ENTITY_CRE_FLG ,
DEL_FLG ,
EMP_INTLS ,
SOL_ID ,
EMP_NAME ,
EMP_SHORT_NAME ,
EMP_SIGN_POWER_NUM ,
EMP_SIGN_POWER_AMT ,
EMP_DESIG ,
EMP_STAT ,
TOT_MOD_TIMES ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
IS_HEAD_TELLER ,
TS_CNT ,
EMP_EMAIL_ID )
selecT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
'''|| G_Current_Business_Date ||'''
Business_Date ,
EMP_ID ,
ENTITY_CRE_FLG ,
DEL_FLG ,
EMP_INTLS ,
SOL_ID ,
EMP_NAME ,
EMP_SHORT_NAME ,
EMP_SIGN_POWER_NUM ,
EMP_SIGN_POWER_AMT ,
EMP_DESIG ,
EMP_STAT ,
TOT_MOD_TIMES ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
IS_HEAD_TELLER ,
TS_CNT ,
EMP_EMAIL_ID
FROM GET' || V_DB_Link || ' ');

EXECUTE IMMEDIATE (' INSERT INTO PWT_GET (


COUNTRY ,
LE_BOOK ,
BUSINESS_DATE ,
EMP_ID ,
ENTITY_CRE_FLG ,
DEL_FLG ,
EMP_INTLS ,
SOL_ID ,
EMP_NAME ,
EMP_SHORT_NAME ,
EMP_SIGN_POWER_NUM ,
EMP_SIGN_POWER_AMT ,
EMP_DESIG ,
EMP_STAT ,
TOT_MOD_TIMES ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
IS_HEAD_TELLER ,
TS_CNT ,
EMP_EMAIL_ID )
selecT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
'''|| G_Current_Business_Date ||'''
Business_Date ,
EMP_ID ,
ENTITY_CRE_FLG ,
DEL_FLG ,
EMP_INTLS ,
SOL_ID ,
EMP_NAME ,
EMP_SHORT_NAME ,
EMP_SIGN_POWER_NUM ,
EMP_SIGN_POWER_AMT ,
EMP_DESIG ,
EMP_STAT ,
TOT_MOD_TIMES ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
IS_HEAD_TELLER ,
TS_CNT ,
EMP_EMAIL_ID
FROM GET' || V_DB_Link || ' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The PWT_GET !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate PWT_GET !!');

RETURN ERRONEOUS_EXIT;
END IF;
end;

writeLogInfo('Beginning Creation PWT_RPT Table.....');

begin

EXECUTE IMMEDIATE ('DELETE FROM PWT_RPT


WHERE COUNTRY = '||''''||P_Country||'''' ||'
AND LE_BOOK = '||''''||P_Le_Book||'''' ||'
AND BUSINESS_DATE ='''|| G_Current_Business_Date
||''' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

end;

begin
writeLogInfo(' INSERT INTO PWT_RPT (
COUNTRY ,
LE_BOOK ,
BUSINESS_DATE ,
ROLE_ID ,
ROLE_DESC ,
ENTITY_CRE_FLG ,
DEL_FLG ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
TS_CNT )
selecT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
'''|| G_Current_Business_Date ||'''
Business_Date ,
ROLE_ID ,
ROLE_DESC ,
ENTITY_CRE_FLG ,
DEL_FLG ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
TS_CNT
FROM RPT' || V_DB_Link || ' ');

EXECUTE IMMEDIATE (' INSERT INTO PWT_RPT (


COUNTRY ,
LE_BOOK ,
BUSINESS_DATE ,
ROLE_ID ,
ROLE_DESC ,
ENTITY_CRE_FLG ,
DEL_FLG ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
TS_CNT )
selecT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
'''|| G_Current_Business_Date ||'''
Business_Date ,
ROLE_ID ,
ROLE_DESC ,
ENTITY_CRE_FLG ,
DEL_FLG ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
TS_CNT
FROM RPT' || V_DB_Link || ' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The PWT_RPT !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate PWT_RPT !!');

RETURN ERRONEOUS_EXIT;
END IF;
end;

writeLogInfo('Beginning Creation PWT_UAC Table.....');

begin

EXECUTE IMMEDIATE ('DELETE FROM PWT_UAC


WHERE COUNTRY = '||''''||P_Country||'''' ||'
AND LE_BOOK = '||''''||P_Le_Book||'''' ||'
AND BUSINESS_DATE ='''|| G_Current_Business_Date
||''' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

end;

begin

writeLogInfo(' INSERT INTO PWT_UAC (


COUNTRY ,
LE_BOOK ,
BUSINESS_DATE ,
USER_ID ,
ACCT_ACCESS_CODE,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
TS_CNT ,
ENTITY_CRE_FLG )
selecT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
'''|| G_Current_Business_Date ||'''
Business_Date ,
USER_ID ,
ACCT_ACCESS_CODE ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
TS_CNT ,
ENTITY_CRE_FLG
FROM UAC ' || V_DB_Link || ' ');

EXECUTE IMMEDIATE (' INSERT INTO PWT_UAC (


COUNTRY ,
LE_BOOK ,
BUSINESS_DATE ,
USER_ID ,
ACCT_ACCESS_CODE,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
TS_CNT ,
ENTITY_CRE_FLG )
selecT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
'''|| G_Current_Business_Date ||'''
Business_Date ,
USER_ID ,
ACCT_ACCESS_CODE ,
LCHG_USER_ID ,
LCHG_TIME ,
RCRE_USER_ID ,
RCRE_TIME ,
TS_CNT ,
ENTITY_CRE_FLG
FROM UAC ' || V_DB_Link || ' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');
EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The PWT_UAC !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate PWT_UAC !!');

RETURN ERRONEOUS_EXIT;
END IF;
end;

BEGIN
-- G_TableDate:=TO_CHAR(G_Current_Business_Date, 'DDMMRRRR');
SELECT TO_CHAR(to_date(G_Current_Business_Date,'DD-MON-
RRRR'),'ddMMRRRR') INTO G_TableDate FROM dual;
SELECT TO_CHAR(to_date(G_Current_Business_Date,'DD-MON-
RRRR'),'ddMMRRRR') INTO G_LastTableDate FROM dual;

dbms_output.put_line('EIT TABLE :'||G_TableDate);

writeLogInfo ('DROP Table


'||V_Schema_Name||'EIT_'||G_TableDate);

EXECUTE IMMEDIATE ('DROP Table


'||V_Schema_Name||'EIT_'||G_TableDate);

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The EIT BKUP table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop EIT !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

Begin

writeLogInfo ('CREATE Table


'||V_Schema_Name||'EIT_'||G_TableDate||' as select * from EIT@FINACLEPROD
');
EXECUTE IMMEDIATE ('CREATE Table
'||V_Schema_Name||'EIT_'||G_TableDate||' as select * from EIT@FINACLEPROD
');

EXCEPTION
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception raised
trying to create EIT_BKup !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Create INDEX
'||V_Schema_Name||'EIT_'||G_TableDate||'_IDX ON
'||V_Schema_Name||'EIT_'||G_TableDate||' (ENTITY_ID) ');

EXECUTE IMMEDIATE 'Create INDEX


'||V_Schema_Name||'EIT_'||G_TableDate||'_IDX ON
'||V_Schema_Name||'EIT_'||G_TableDate||' (ENTITY_ID) ';

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('Invalid Table NAME - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create Index on EIT (ENTITY_ID) !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'TEMP_TXN_BKWD PURGE ');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The TEMP_TXN_BKWD table has already
been dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TEMP_TXN_BKWD !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;
BEGIN
writeLogInfo('Create Table TEMP_TXN_BKWD AS
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
GAM.FORACID CONTRACT_ID,
HTD.GL_SUB_HEAD_CODE VISION_GL,
GAM.SOL_ID VISION_OUC,
HTD.TRAN_CRNCY_CODE TRAN_CCY,
HTD.PART_TRAN_TYPE TRAN_TYPE,
SUM(TRAN_AMT) TRAN_AMT,
to_char(TRAN_DATE,''DD-MON-RRRR'')
TRAN_DATE,
NVL(HTD.VALUE_DATE,'''|| G_Current_Business_Date
||''') VALUE_DATE,
GAM.SCHM_TYPE SCHM_TYPE,
HTD.TRAN_PARTICULAR_CODE COST_CENTER,
''NA'' PROFIT_CENTER,GAM.ACCT_CRNCY_CODE,'||
''''|| G_Current_Business_Date ||''''||'
FEED_DATE,
''FINANCIAL'' PRODUCT,
''N'' RUN_STATUS,
HTD.TRAN_DATE DATE_LAST_MODIFIED,
HTD.TRAN_DATE DATE_CREATION
FROM
HTD' || V_DB_Link || ' HTD,
GAM' || V_DB_Link || ' GAM,
CEM' || V_DB_Link || ' CEM
WHERE
HTD.ACID =GAM.ACID
AND GAM.CUST_ID =CEM.CUST_ID(+)
AND HTD.DEL_FLG =''N''
AND GAM.DEL_FLG =''N''
And tran_date <'''|| G_Current_Business_Date ||'''
And tran_date != trunc(PSTD_DATE)
And trunc(PSTD_DATE) ='''|| G_Current_Business_Date ||'''
And htd.RCRE_USER_ID in (select user_id from
upr@finacleprod where user_work_class between ''010'' and ''110'')
GROUP BY
GAM.CUST_ID, GAM.FORACID,
HTD.GL_SUB_HEAD_CODE ,
GAM.SOL_ID,
HTD.TRAN_PARTICULAR_CODE,NVL(CEM.FREE_CODE_2,''NA''),
HTD.TRAN_CRNCY_CODE,
HTD.PART_TRAN_TYPE, HTD.TRAN_AMT,
HTD.TRAN_DATE,
NVL(HTD.VALUE_DATE, '''||
G_Current_Business_Date ||''') ,
GAM.SCHM_TYPE ,GAM.ACCT_CRNCY_CODE ');

EXECUTE IMMEDIATE ('Create Table TEMP_TXN_BKWD AS


SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
GAM.FORACID CONTRACT_ID,
HTD.GL_SUB_HEAD_CODE VISION_GL,
GAM.SOL_ID VISION_OUC,
HTD.TRAN_CRNCY_CODE TRAN_CCY,
HTD.PART_TRAN_TYPE TRAN_TYPE,
SUM(TRAN_AMT) TRAN_AMT,
to_char(TRAN_DATE,''DD-MON-RRRR'')
TRAN_DATE,
NVL(HTD.VALUE_DATE,'''|| G_Current_Business_Date
||''') VALUE_DATE,
GAM.SCHM_TYPE SCHM_TYPE,
HTD.TRAN_PARTICULAR_CODE COST_CENTER,
''NA'' PROFIT_CENTER,GAM.ACCT_CRNCY_CODE,'||
''''|| G_Current_Business_Date ||''''||'
FEED_DATE,
''FINANCIAL'' PRODUCT,
''N'' RUN_STATUS,
HTD.TRAN_DATE DATE_LAST_MODIFIED,
HTD.TRAN_DATE DATE_CREATION
FROM
HTD' || V_DB_Link || ' HTD,
GAM' || V_DB_Link || ' GAM,
CEM' || V_DB_Link || ' CEM
WHERE
HTD.ACID =GAM.ACID
AND GAM.CUST_ID =CEM.CUST_ID(+)
AND HTD.DEL_FLG =''N''
AND GAM.DEL_FLG =''N''
And tran_date <'''|| G_Current_Business_Date ||'''
And tran_date != trunc(PSTD_DATE)
And trunc(PSTD_DATE) ='''|| G_Current_Business_Date ||'''
And htd.RCRE_USER_ID in (select user_id from
upr@finacleprod where user_work_class between ''010'' and ''110'')
GROUP BY
GAM.CUST_ID, GAM.FORACID,
HTD.GL_SUB_HEAD_CODE ,
GAM.SOL_ID,
HTD.TRAN_PARTICULAR_CODE,NVL(CEM.FREE_CODE_2,''NA''),
HTD.TRAN_CRNCY_CODE,
HTD.PART_TRAN_TYPE, HTD.TRAN_AMT,
HTD.TRAN_DATE,
NVL(HTD.VALUE_DATE, '''||
G_Current_Business_Date ||''') ,
GAM.SCHM_TYPE ,GAM.ACCT_CRNCY_CODE ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');
EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('ERR Creating BACK DATED TXNS table
- FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop Back Dated TXNs !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'temp_rates PURGE ');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The temp_rates table has already
been dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop temp_rates !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN
writeLogInfo('Create Table TEMP_RATES AS
Select gam.foracid account_no,
gam.gl_sub_head_code,gam.schm_type, gam.acid, ITC.int_tbl_code ,
case when nvl(MIN_INT_PCNT_DR,0) >
(itc.CUST_DR_PREF_PCNT+itc.id_dr_pref_pcnt+LAVS.nrml_int_pcnt) then
MIN_INT_PCNT_DR else
case when nvl(MAX_INT_PCNT_DR,0)!=0 and
nvl(MAX_INT_PCNT_DR,0) <
(itc.CUST_DR_PREF_PCNT+itc.id_dr_pref_pcnt+LAVS.nrml_int_pcnt) then
MAX_INT_PCNT_DR else

(itc.CUST_DR_PREF_PCNT+itc.id_dr_pref_pcnt+LAVS.nrml_int_pcnt) end end


interest_rate_dr, 0 interest_rate_cr,
itc.CUST_DR_PREF_PCNT+itc.id_dr_pref_pcnt
ID_PREF_PCNT,LAVS.nrml_int_pcnt nrml_int_pcnt,lavs.penal_int_pcnt
penal_int_pcnt, ICV.INT_RATE_TEXT
from ITC@FINACLEPROD ITC, LAVS@FINACLEPROD LAVS,
ICV@FINACLEPROD ICV,gam@FINACLEPROD gam
Where gam.acid = itc.entity_id
AND gam.schm_type=''LAA''
and ITC.int_tbl_code_srl_num in (select
max(int_tbl_code_srl_num) from itc@FINACLEPROD t1
where t1.entity_id=GAM.acid
and t1.start_date <=
to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.end_date >=
to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.del_flg != ''Y''
and t1.entity_cre_flg = ''Y'')
and ITC.start_date <= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'')
and ITC.end_date >= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ITC.del_flg != ''Y'' and ITC.entity_cre_flg = ''Y''
and ICV.int_tbl_code = ITC.int_tbl_code
and ICV.crncy_code= GAM.acct_crncy_code
and ICV.lchg_time = (select max(lchg_time) from
ICV@FINACLEPROD t1
where t1.int_tbl_code =
ITC.int_tbl_code
and t1.crncy_code =
GAM.ACCT_crncy_code
and t1.start_date <= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.end_date >= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'') and t1.del_flg != ''Y''
and t1.entity_cre_flg = ''Y'')
and ICV.start_date <= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'')
and ICV.end_date >= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ICV.del_flg != ''Y''and ICV.entity_cre_flg = ''Y''
and LAVS.int_tbl_code = ICV.int_tbl_code and
LAVS.int_tbl_ver_num = ICV.int_version
and LAVS.crncy_code = GAM.acct_crncy_code and
LAVS.int_slab_dr_cr_flg=''D''
and LAVS.del_flg != ''Y''and LAVS.entity_cre_flg = ''Y''
union
SELECT gam.foracid account_no,
gam.gl_sub_head_code,gam.schm_type, gam.acid, ITC.int_tbl_code ,0
interest_rate_dr,

(itc.CUST_CR_PREF_PCNT+itc.id_cr_pref_pcnt+TVS.nrml_int_pcnt)
interest_rate_CR ,
itc.CUST_CR_PREF_PCNT ID_PREF_PCNT, TVS.NRML_INT_PCNT
nrml_int_pcnt,Tvs.PENAL_PCNT penal_int_pcnt, ICV.INT_RATE_TEXT
from ITC@FINACLEPROD, TVS@FINACLEPROD, ICV@FINACLEPROD,
tam@FINACLEPROD tam,gam@FINACLEPROD gam
where GAM.acid = itc.entity_id
And gam.schm_type=''TDA''
And gam.acid=tam.acid
and ITC.int_tbl_code_srl_num in (select
max(int_tbl_code_srl_num) from itc@FINACLEPROD t1
where t1.entity_id=gam.acid
and t1.start_date <=
to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.end_date >=
to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.del_flg != ''Y''and
t1.entity_cre_flg = ''Y''
and REN_SRL_NUM =(select
max(ren_srl_num) from itc@FinacleProd where gAM.acid = ITC.entity_id
and
ITC.start_date <= to_date('''|| G_Current_Business_Date ||''',''DD-MON-
RRRR'')
and ITC.end_date
>= to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and ITC.del_flg
!= ''Y''
and
ITC.entity_cre_flg = ''Y''))
and ITC.start_date <= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ITC.end_date >= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ITC.del_flg != ''Y''and ITC.entity_cre_flg = ''Y''
and ICV.int_tbl_code = ITC.int_tbl_code
and ICV.crncy_code= GAM.acct_crncy_code
and ICV.lchg_time = (select max(lchg_time) from
ICV@FINACLEPROD t1
where t1.int_tbl_code =
ITC.int_tbl_code
and t1.crncy_code =
GAM.acct_crncy_code
and t1.start_date <= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.end_date >= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'') and t1.del_flg != ''Y''
and t1.entity_cre_flg = ''Y'')
and ICV.start_date <= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ICV.end_date >= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ICV.del_flg != ''Y''and ICV.entity_cre_flg = ''Y''
and TVS.int_tbl_code = ICV.int_tbl_code
and TVS.int_tbl_ver_num = ICV.int_version
and TVS.crncy_code = GAM.acct_crncy_code
and TVS.int_slab_dr_cr_flg=''C''
and TVS.del_flg != ''Y''
and TVS.entity_cre_flg = ''Y''
and tvs.INT_SLAB_SRL_NUM = (select min(t1.INT_SLAB_SRL_NUM)
from tvs@FINACLEPROD t1
where t1.int_tbl_code =
ICV.int_tbl_code and t1.int_tbl_ver_num = ICV.int_version
and t1.crncy_code =
GAM.acct_crncy_code and t1.int_slab_dr_cr_flg=''C''
and t1.del_flg != ''Y''and
t1.entity_cre_flg = ''Y''
and t1.MAX_CONTRACTED_MTHS >=
tam.DEPOSIT_PERIOD_MTHS
and t1.MAX_PERIOD_RUN_MTHS >=
tam.DEPOSIT_PERIOD_MTHS)
UNION
SELECT account_no,gl_sub_head_code,schm_type,acid,int_tbl_code,

max(interest_rate_dr),max(interest_rate_cr),max(id_pref_pcnt),max(nrml_in
t_pcnt),
max(penal_int_pcnt),int_rate_text FROM (
select gam.foracid account_no, gam.gl_sub_head_code,gam.schm_type,
gam.acid, ITC.int_tbl_code , 0 interest_rate_dr,
nvl( case when nvl(MIN_INT_PCNT_CR,0) >
(itc.id_Cr_pref_pcnt+IVS.nrml_int_pcnt) then MIN_INT_PCNT_CR else
case when nvl(MAX_INT_PCNT_CR,0)!=0 and
nvl(MAX_INT_PCNT_CR,0) < (itc.id_Cr_pref_pcnt+IVS.nrml_int_pcnt) then
MAX_INT_PCNT_CR else
(itc.id_Cr_pref_pcnt+IVS.nrml_int_pcnt) end end ,0) interest_rate_CR,
itc.id_dr_pref_pcnt ID_PREF_PCNT,
IVS.nrml_int_pcnt nrml_int_pcnt,ivs.penal_int_pcnt
penal_int_pcnt, ICV.INT_RATE_TEXT
from ITC@FINACLEPROD itc,IVS@FINACLEPROD ivs,ICV@FINACLEPROD
icv,gam@FINACLEPROD gam
where GAM.acid = itc.entity_id
and ITC.int_tbl_code_srl_num in (select
max(int_tbl_code_srl_num) from itc@FINACLEPROD t1
where t1.entity_id=
GAM.acid
and t1.start_date <=
to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.end_date >=
to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.del_flg != ''Y''and
t1.entity_cre_flg = ''Y'')
and ITC.start_date <= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'')
and ITC.end_date >= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ITC.del_flg != ''Y''and ITC.entity_cre_flg = ''Y''
and ICV.int_tbl_code = ITC.int_tbl_code
and ICV.crncy_code= GAM.acct_crncy_code
and ICV.lchg_time = (select max(lchg_time) from
ICV@FINACLEPROD t1
where t1.int_tbl_code =
ITC.int_tbl_code
and t1.crncy_code =
GAM.acct_crncy_code
and t1.start_date <= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.end_date >= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'') and t1.del_flg != ''Y''
and t1.entity_cre_flg = ''Y'')
and ICV.start_date <= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ICV.end_date >= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ICV.del_flg != ''Y''and ICV.entity_cre_flg = ''Y''
and IVS.int_tbl_code = ICV.int_tbl_code
and IVS.int_tbl_ver_num = ICV.int_version
and IVS.crncy_code = GAM.acct_crncy_code
and IVS.int_slab_dr_cr_flg=''C''
and IVS.begin_slab_amt < abs(GAM.clr_bal_amt +
GAM.un_clr_bal_amt)
and IVS.end_slab_amt > abs(GAM.clr_bal_amt +
gam.un_clr_bal_amt)
and IVS.del_flg != ''Y''
-- and gam.int_paid_flg=''Y''
and gam.SCHM_TYPE not in ( ''ODA'',''LAA'',''TDA'')
and IVS.entity_cre_flg = ''Y''
union
select gam.foracid account_no, gam.gl_sub_head_code,gam.schm_type,
gam.acid, ITC.int_tbl_code ,
nvl( case when nvl(MIN_INT_PCNT_DR,0) >
(itc.id_dr_pref_pcnt+IVS.nrml_int_pcnt) then MIN_INT_PCNT_DR else
case when nvl(MAX_INT_PCNT_DR,0)!=0 and
nvl(MAX_INT_PCNT_DR,0) < (itc.id_dr_pref_pcnt+IVS.nrml_int_pcnt) then
MAX_INT_PCNT_DR else
(itc.id_dr_pref_pcnt+IVS.nrml_int_pcnt) end end,0) interest_rate_dr,
0 interest_rate_CR,
itc.id_dr_pref_pcnt ID_PREF_PCNT,
IVS.nrml_int_pcnt nrml_int_pcnt,ivs.penal_int_pcnt
penal_int_pcnt, ICV.INT_RATE_TEXT
from ITC@FINACLEPROD itc,IVS@FINACLEPROD ivs,ICV@FINACLEPROD
icv,gam@FINACLEPROD gam
where GAM.acid = itc.entity_id
and ITC.int_tbl_code_srl_num in (select
max(int_tbl_code_srl_num) from itc@FINACLEPROD t1
where t1.entity_id=
GAM.acid
and t1.start_date <=
to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.end_date >=
to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.del_flg != ''Y''
and t1.entity_cre_flg = ''Y'')
and ITC.start_date <= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'')
and ITC.end_date >= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ITC.del_flg != ''Y'' and ITC.entity_cre_flg = ''Y''
and ICV.int_tbl_code = ITC.int_tbl_code
and ICV.crncy_code= GAM.acct_crncy_code
and ICV.lchg_time = (select max(lchg_time) from
ICV@FINACLEPROD t1
where t1.int_tbl_code =
ITC.int_tbl_code
and t1.crncy_code =
GAM.acct_crncy_code
and t1.start_date <= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.end_date >= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'') and t1.del_flg != ''Y''
and t1.entity_cre_flg = ''Y'')
and ICV.start_date <= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ICV.end_date >= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ICV.del_flg != ''Y'' and ICV.entity_cre_flg = ''Y''
and IVS.int_tbl_code = ICV.int_tbl_code
and IVS.int_tbl_ver_num = ICV.int_version
and IVS.crncy_code = GAM.acct_crncy_code
and IVS.int_slab_dr_cr_flg=''D''
and IVS.begin_slab_amt < abs(GAM.clr_bal_amt +
GAM.un_clr_bal_amt)
and IVS.end_slab_amt > abs(GAM.clr_bal_amt +
gam.un_clr_bal_amt)
and IVS.del_flg != ''Y''
-- and gam.int_coll_flg=''Y''
and gam.SCHM_TYPE not in ( ''LAA'',''TDA'')
and IVS.entity_cre_flg = ''Y'' )
group by
account_no,gl_sub_head_code,schm_type,acid,int_tbl_code ,int_rate_text
');

EXECUTE IMMEDIATE ('Create Table TEMP_RATES AS


Select gam.foracid account_no,
gam.gl_sub_head_code,gam.schm_type, gam.acid, ITC.int_tbl_code ,
case when nvl(MIN_INT_PCNT_DR,0) >
(itc.CUST_DR_PREF_PCNT+itc.id_dr_pref_pcnt+LAVS.nrml_int_pcnt) then
MIN_INT_PCNT_DR else
case when nvl(MAX_INT_PCNT_DR,0)!=0 and
nvl(MAX_INT_PCNT_DR,0) <
(itc.CUST_DR_PREF_PCNT+itc.id_dr_pref_pcnt+LAVS.nrml_int_pcnt) then
MAX_INT_PCNT_DR else

(itc.CUST_DR_PREF_PCNT+itc.id_dr_pref_pcnt+LAVS.nrml_int_pcnt) end end


interest_rate_dr, 0 interest_rate_cr,
itc.CUST_DR_PREF_PCNT+itc.id_dr_pref_pcnt
ID_PREF_PCNT,LAVS.nrml_int_pcnt nrml_int_pcnt,lavs.penal_int_pcnt
penal_int_pcnt, ICV.INT_RATE_TEXT
from ITC@FINACLEPROD ITC, LAVS@FINACLEPROD LAVS,
ICV@FINACLEPROD ICV,gam@FINACLEPROD gam
Where gam.acid = itc.entity_id
AND gam.schm_type=''LAA''
and ITC.int_tbl_code_srl_num in (select
max(int_tbl_code_srl_num) from itc@FINACLEPROD t1
where t1.entity_id=GAM.acid
and t1.start_date <=
to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.end_date >=
to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.del_flg != ''Y''
and t1.entity_cre_flg = ''Y'')
and ITC.start_date <= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'')
and ITC.end_date >= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ITC.del_flg != ''Y'' and ITC.entity_cre_flg = ''Y''
and ICV.int_tbl_code = ITC.int_tbl_code
and ICV.crncy_code= GAM.acct_crncy_code
and ICV.lchg_time = (select max(lchg_time) from
ICV@FINACLEPROD t1
where t1.int_tbl_code =
ITC.int_tbl_code
and t1.crncy_code =
GAM.ACCT_crncy_code
and t1.start_date <= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.end_date >= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'') and t1.del_flg != ''Y''
and t1.entity_cre_flg = ''Y'')
and ICV.start_date <= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'')
and ICV.end_date >= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ICV.del_flg != ''Y''and ICV.entity_cre_flg = ''Y''
and LAVS.int_tbl_code = ICV.int_tbl_code and
LAVS.int_tbl_ver_num = ICV.int_version
and LAVS.crncy_code = GAM.acct_crncy_code and
LAVS.int_slab_dr_cr_flg=''D''
and LAVS.del_flg != ''Y''and LAVS.entity_cre_flg = ''Y''
union
SELECT gam.foracid account_no,
gam.gl_sub_head_code,gam.schm_type, gam.acid, ITC.int_tbl_code ,0
interest_rate_dr,

(itc.CUST_CR_PREF_PCNT+itc.id_cr_pref_pcnt+TVS.nrml_int_pcnt)
interest_rate_CR ,
itc.CUST_CR_PREF_PCNT ID_PREF_PCNT, TVS.NRML_INT_PCNT
nrml_int_pcnt,Tvs.PENAL_PCNT penal_int_pcnt, ICV.INT_RATE_TEXT
from ITC@FINACLEPROD, TVS@FINACLEPROD, ICV@FINACLEPROD,
tam@FINACLEPROD tam,gam@FINACLEPROD gam
where GAM.acid = itc.entity_id
And gam.schm_type=''TDA''
And gam.acid=tam.acid
and ITC.int_tbl_code_srl_num in (select
max(int_tbl_code_srl_num) from itc@FINACLEPROD t1
where t1.entity_id=gam.acid
and t1.start_date <=
to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.end_date >=
to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.del_flg != ''Y''and
t1.entity_cre_flg = ''Y''
and REN_SRL_NUM =(select
max(ren_srl_num) from itc@FinacleProd where gAM.acid = ITC.entity_id
and
ITC.start_date <= to_date('''|| G_Current_Business_Date ||''',''DD-MON-
RRRR'')
and ITC.end_date
>= to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and ITC.del_flg
!= ''Y''
and
ITC.entity_cre_flg = ''Y''))
and ITC.start_date <= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ITC.end_date >= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ITC.del_flg != ''Y''and ITC.entity_cre_flg = ''Y''
and ICV.int_tbl_code = ITC.int_tbl_code
and ICV.crncy_code= GAM.acct_crncy_code
and ICV.lchg_time = (select max(lchg_time) from
ICV@FINACLEPROD t1
where t1.int_tbl_code =
ITC.int_tbl_code
and t1.crncy_code =
GAM.acct_crncy_code
and t1.start_date <= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.end_date >= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'') and t1.del_flg != ''Y''
and t1.entity_cre_flg = ''Y'')
and ICV.start_date <= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ICV.end_date >= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ICV.del_flg != ''Y''and ICV.entity_cre_flg = ''Y''
and TVS.int_tbl_code = ICV.int_tbl_code
and TVS.int_tbl_ver_num = ICV.int_version
and TVS.crncy_code = GAM.acct_crncy_code
and TVS.int_slab_dr_cr_flg=''C''
and TVS.del_flg != ''Y''
and TVS.entity_cre_flg = ''Y''
and tvs.INT_SLAB_SRL_NUM = (select min(t1.INT_SLAB_SRL_NUM)
from tvs@FINACLEPROD t1
where t1.int_tbl_code =
ICV.int_tbl_code and t1.int_tbl_ver_num = ICV.int_version
and t1.crncy_code =
GAM.acct_crncy_code and t1.int_slab_dr_cr_flg=''C''
and t1.del_flg != ''Y''and
t1.entity_cre_flg = ''Y''
and t1.MAX_CONTRACTED_MTHS >=
tam.DEPOSIT_PERIOD_MTHS
and t1.MAX_PERIOD_RUN_MTHS >=
tam.DEPOSIT_PERIOD_MTHS)
UNION
SELECT account_no,gl_sub_head_code,schm_type,acid,int_tbl_code,

max(interest_rate_dr),max(interest_rate_cr),max(id_pref_pcnt),max(nrml_in
t_pcnt),
max(penal_int_pcnt),int_rate_text FROM (
select gam.foracid account_no, gam.gl_sub_head_code,gam.schm_type,
gam.acid, ITC.int_tbl_code , 0 interest_rate_dr,
nvl( case when nvl(MIN_INT_PCNT_CR,0) >
(itc.id_Cr_pref_pcnt+IVS.nrml_int_pcnt) then MIN_INT_PCNT_CR else
case when nvl(MAX_INT_PCNT_CR,0)!=0 and
nvl(MAX_INT_PCNT_CR,0) < (itc.id_Cr_pref_pcnt+IVS.nrml_int_pcnt) then
MAX_INT_PCNT_CR else
(itc.id_Cr_pref_pcnt+IVS.nrml_int_pcnt) end end ,0) interest_rate_CR,
itc.id_dr_pref_pcnt ID_PREF_PCNT,
IVS.nrml_int_pcnt nrml_int_pcnt,ivs.penal_int_pcnt
penal_int_pcnt, ICV.INT_RATE_TEXT
from ITC@FINACLEPROD itc,IVS@FINACLEPROD ivs,ICV@FINACLEPROD
icv,gam@FINACLEPROD gam
where GAM.acid = itc.entity_id
and ITC.int_tbl_code_srl_num in (select
max(int_tbl_code_srl_num) from itc@FINACLEPROD t1
where t1.entity_id=
GAM.acid
and t1.start_date <=
to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.end_date >=
to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.del_flg != ''Y''and
t1.entity_cre_flg = ''Y'')
and ITC.start_date <= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'')
and ITC.end_date >= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ITC.del_flg != ''Y''and ITC.entity_cre_flg = ''Y''
and ICV.int_tbl_code = ITC.int_tbl_code
and ICV.crncy_code= GAM.acct_crncy_code
and ICV.lchg_time = (select max(lchg_time) from
ICV@FINACLEPROD t1
where t1.int_tbl_code =
ITC.int_tbl_code
and t1.crncy_code =
GAM.acct_crncy_code
and t1.start_date <= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.end_date >= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'') and t1.del_flg != ''Y''
and t1.entity_cre_flg = ''Y'')
and ICV.start_date <= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ICV.end_date >= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ICV.del_flg != ''Y''and ICV.entity_cre_flg = ''Y''
and IVS.int_tbl_code = ICV.int_tbl_code
and IVS.int_tbl_ver_num = ICV.int_version
and IVS.crncy_code = GAM.acct_crncy_code
and IVS.int_slab_dr_cr_flg=''C''
and IVS.begin_slab_amt < abs(GAM.clr_bal_amt +
GAM.un_clr_bal_amt)
and IVS.end_slab_amt > abs(GAM.clr_bal_amt +
gam.un_clr_bal_amt)
and IVS.del_flg != ''Y''
-- and gam.int_paid_flg=''Y''
and gam.SCHM_TYPE not in ( ''ODA'',''LAA'',''TDA'')
and IVS.entity_cre_flg = ''Y''
union
select gam.foracid account_no, gam.gl_sub_head_code,gam.schm_type,
gam.acid, ITC.int_tbl_code ,
nvl( case when nvl(MIN_INT_PCNT_DR,0) >
(itc.id_dr_pref_pcnt+IVS.nrml_int_pcnt) then MIN_INT_PCNT_DR else
case when nvl(MAX_INT_PCNT_DR,0)!=0 and
nvl(MAX_INT_PCNT_DR,0) < (itc.id_dr_pref_pcnt+IVS.nrml_int_pcnt) then
MAX_INT_PCNT_DR else
(itc.id_dr_pref_pcnt+IVS.nrml_int_pcnt) end end,0) interest_rate_dr,
0 interest_rate_CR,
itc.id_dr_pref_pcnt ID_PREF_PCNT,
IVS.nrml_int_pcnt nrml_int_pcnt,ivs.penal_int_pcnt
penal_int_pcnt, ICV.INT_RATE_TEXT
from ITC@FINACLEPROD itc,IVS@FINACLEPROD ivs,ICV@FINACLEPROD
icv,gam@FINACLEPROD gam
where GAM.acid = itc.entity_id
and ITC.int_tbl_code_srl_num in (select
max(int_tbl_code_srl_num) from itc@FINACLEPROD t1
where t1.entity_id=
GAM.acid
and t1.start_date <=
to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.end_date >=
to_date('''|| G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.del_flg != ''Y''
and t1.entity_cre_flg = ''Y'')
and ITC.start_date <= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'')
and ITC.end_date >= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ITC.del_flg != ''Y'' and ITC.entity_cre_flg = ''Y''
and ICV.int_tbl_code = ITC.int_tbl_code
and ICV.crncy_code= GAM.acct_crncy_code
and ICV.lchg_time = (select max(lchg_time) from
ICV@FINACLEPROD t1
where t1.int_tbl_code =
ITC.int_tbl_code
and t1.crncy_code =
GAM.acct_crncy_code
and t1.start_date <= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'')
and t1.end_date >= to_date('''||
G_Current_Business_Date ||''',''DD-MON-RRRR'') and t1.del_flg != ''Y''
and t1.entity_cre_flg = ''Y'')
and ICV.start_date <= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ICV.end_date >= to_date('''|| G_Current_Business_Date
||''',''DD-MON-RRRR'')
and ICV.del_flg != ''Y'' and ICV.entity_cre_flg = ''Y''
and IVS.int_tbl_code = ICV.int_tbl_code
and IVS.int_tbl_ver_num = ICV.int_version
and IVS.crncy_code = GAM.acct_crncy_code
and IVS.int_slab_dr_cr_flg=''D''
and IVS.begin_slab_amt < abs(GAM.clr_bal_amt +
GAM.un_clr_bal_amt)
and IVS.end_slab_amt > abs(GAM.clr_bal_amt +
gam.un_clr_bal_amt)
and IVS.del_flg != ''Y''
-- and gam.int_coll_flg=''Y''
and gam.SCHM_TYPE not in ( ''LAA'',''TDA'')
and IVS.entity_cre_flg = ''Y'' )
group by
account_no,gl_sub_head_code,schm_type,acid,int_tbl_code ,int_rate_text
');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception raised
trying to Create TEMP_RATES !!');

RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE (select * from TEMP_RATES where


Schm_type=''TDA'') T1 SET
T1.INTEREST_RATE_DR = (SELECT T2.interest_rate FROM
EIT@finacleprod T2 where LCHG_TIME >= '''||G_LastBusinessDateRun||''' and
T2.entity_id = T1.acid)
WHERE
T1.acid IN (select acid from
(select * from TEMP_RATES where Schm_type=''TDA'')
t1,
(select * from EIT@finacleprod where LCHG_TIME >=
'''||G_LastBusinessDateRun||''') t2
where acid=entity_id and
t1.INTEREST_RATE_DR<>t2.interest_rate)');

EXECUTE IMMEDIATE 'UPDATE (select * from TEMP_RATES where


Schm_type=''TDA'') T1 SET
T1.INTEREST_RATE_DR = (SELECT T2.interest_rate FROM
EIT@finacleprod T2 where LCHG_TIME >= '''||G_LastBusinessDateRun||''' and
T2.entity_id = T1.acid)
WHERE
T1.acid IN (select acid from
(select * from TEMP_RATES where Schm_type=''TDA'')
t1,
(select * from EIT@finacleprod where LCHG_TIME >=
'''||G_LastBusinessDateRun||''') t2
where acid=entity_id and
t1.INTEREST_RATE_DR<>t2.interest_rate)';

EXCEPTION
WHEN OTHERS
THEN
G_Error_Msg:='Error While Update TDA
INTEREST_RATE_DR!!!!!!';
writeErrLogInfo(G_Error_Msg);
dbms_output.Put_line('Error While Update TDA
INTEREST_RATE_DR!!!!!!');
RETURN ERRONEOUS_EXIT;
END;

/* Begin

EXECUTE IMMEDIATE ('drop table TEMP_ARR_DTL purge');

WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The TEMP_ARR_DTL table has already
been dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TEMP_ARR_DTL !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

begin

EXECUTE IMMEDIATE ('Create table TEMP_ARR_DTL AS


select t1.acid ACID,foracid FORACID,cust_id
CUSTOMER_ID,acct_type ACCOUNT_TYPE,bal_on BALANCE_DATE,
gl_code VISION_GL,acct_ccy CURRENCY,os_bal
OUTSTANDING_BAL,t3.dpd DPD,t3.dpd_amt DPD_AMT,
'''|| G_Current_Business_Date ||''' FEED_DATE,''DPDCNT''
PRODUCT,''N'' RUNSTATUS
from (
select
gam.acid acid,
foracid,
trim(GAm.cust_id) cust_id,
decode(gam.schm_type,''LAA'',''LOAN'',''OD'')
acct_type,
eod_date BAL_ON,
gl_sub_head_code gl_code,
acct_crncy_code acct_ccy,
tran_date_bal os_bal
from gam@FINACLEPROD,eab@FINACLEPROD
where gam.acid=eab.acid
and gam.acct_cls_flg=''N''
and gam.del_flg=''N''
and eab.eod_date=(select max(eod_date) from
eab@FINACLEPROD where eab.acid=gam.acid and eod_date <= '''||
G_Current_Business_Date ||''')
and tran_date_bal <0
and acct_ownership !=''O''
and gam.schm_type = ''LAA''
and gam.int_coll_flg!=''N''
) t1,
(
select acid,
(to_date('||''''||G_Current_Business_Date ||''''||' ,''DD-MON-RRRR'')-
min(t2.dmd_eff_date)) DPD ,
nvl(sum((t2.dmd_amt)-(t2.tot_adj_amt)),0) DPD_AMT
from
ldt@finacleprod t2
where
t2.shdl_num=(select max(shdl_num) from
lrs@finacleprod where lrs.acid=t2.acid and lrs.del_flg!=''Y'')
and t2.del_flg != ''Y''
and t2.DMD_OVDU_DATE
<=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t2.dmd_amt != t2.tot_adj_amt group by acid
having sum( (t2.dmd_amt-t2.tot_adj_amt))> 0 ) t3
where t1.acid=t3.acid
and t3.dpd !=0
UNION
select acid ACID,foracid FORACID,cust_id
CUSTOMER_ID,acct_type ACCOUNT_TYPE,bal_on BALANCE_DATE,
gl_code VISION_GL,acct_ccy CURRENCY,os_bal
OUTSTANDING_BAL,
to_number(substr(DPD,1,instr(DPD,''|'')-1))
DPD,to_number(substr(DPD,instr(DPD,''|'')+1)) DPD_AMT,
'''|| G_Current_Business_Date ||'''
FEED_DATE,''DPDCNT'' PRODUCT,''N'' RUNSTATUS
from ( select t1.*,t2.vlmtexpiry,t2.vlimit,
fn_DPD_BAL(t1.acid,to_char(t1.bal_on,''DD-MON-
RRRR''),to_date('||''''||G_Current_Business_Date ||''''||' ,''DD-MON-
RRRR''),T1.OS_BAL,t2.vlimit,t2.vlmtexpiry) DPD
from
( select
gam.acid acid,
foracid,
trim(GAm.cust_id) cust_id,
decode(gam.schm_type,''LAA'',''LOAN'',''OD'')
acct_type,
eod_date BAL_ON,
gl_sub_head_code gl_code,
acct_crncy_code acct_ccy,
tran_date_bal os_bal
from gam@FINACLEPROD,eab@FINACLEPROD
where gam.acid=eab.acid
and gam.acct_cls_flg=''N''
and gam.del_flg=''N''
and eab.eod_date=(select max(eod_date) from
eab@FINACLEPROD where eab.acid=gam.acid and eod_date <= '''||
G_Current_Business_Date ||''' )
and tran_date_bal <0
and acct_ownership !=''O''
and gam.schm_type in (''ODA'',''CAA'')
and gam.int_coll_flg!=''N''
) t1,
(select acid, max(to_char(LHT.lim_exp_date,''DD-
MON-YYYY'')) vlmtexpiry ,sum(nvl(lht.SANCT_LIM,0)) vlimit
from lht@finacleprod
where LHT.applicable_date <= '''||
G_Current_Business_Date ||'''
and LHT.status = ''A'' and LHT.entity_cre_flg
= ''Y'' and lht.del_flg != ''Y''
group by acid) t2
where t1.acid=t2.acid ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception raised
trying to Create TEMP_RATES !!');

RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Create INDEX TEMP_ARR_DTL_IDX ON TEMP_ARR_DTL
(CUSTOMER_ID,ACID) ');

EXECUTE IMMEDIATE 'Create INDEX TEMP_ARR_DTL_IDX ON


TEMP_ARR_DTL (CUSTOMER_ID,ACID)';

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('Invalid Table NAME - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create Index on TEMP_TXN_DTL_HTD (TRAN_DATE,TRAN_ID) !!');

RETURN ERRONEOUS_EXIT;
END IF;
END; */

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CURRENCY_FEED_STG


population......');

BEGIN

writeLogInfo ('Insert Into CURRENCY_FEED_STG (


COUNTRY,
LE_BOOK,
CURRENCY,
CCY_DATE,
WASH_RATE,
FEED_DATE,
PRODUCT,
LCHG_TIME,
RUN_STATUS,
DATE_LAST_MODIFIED ,
DATE_CREATION)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
FXD_CRNCY_CODE CURRENCY,
Rtlist_Date CCY_DATE,
NVL(decode(FXD_CRNCY_CODE,''ITL'',
var_crncy_units/1000,''JPY'', var_crncy_units/100,''MGA'',
var_crncy_units/100,''KES'', var_crncy_units/100,var_crncy_units),0)
WASH_RATE, '||
''''|| G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
LCHG_TIME,
''N'' RUN_STATUS,
LCHG_TIME DATE_LAST_MODIFIED ,
LCHG_TIME DATE_CREATION
FROM
( SELECT r1.rtlist_date , r1.fxd_crncy_code ,
r1.var_crncy_units ,LCHG_TIME,RCRE_TIME
FROM RTL' || V_DB_Link || ' r1
WHERE r1.entity_cre_flg = ''Y''
AND r1.del_flg = ''N''
AND r1.var_crncy_code = ''MUR''
AND r1.ratecode = (SELECT report_rate_code
FROM GCT' || V_DB_Link || ')
AND (fxd_crncy_code,r1.rtlist_num) in
(SELECT fxd_crncy_code,MAX (rtlist_num)
FROM RTL' || V_DB_Link || '
WHERE fxd_crncy_code =
r1.fxd_crncy_code
AND var_crncy_code =
r1.var_crncy_code
AND ratecode = r1.ratecode
AND rtlist_date = r1.rtlist_date
AND entity_cre_flg = ''Y''
AND rtlist_date <= '''||
G_Current_Business_Date ||'''
AND del_flg = ''N''
group by fxd_crncy_code )
UNION ALL
SELECT r1.rtlist_date , r1.fxd_crncy_code ,
r1.var_crncy_units,LCHG_TIME,RCRE_TIME
FROM rth' || V_DB_Link || ' r1
WHERE r1.var_crncy_code = ''MUR''
AND r1.del_flg = ''N''
AND r1.ratecode = (SELECT report_rate_code
FROM gct' || V_DB_Link ||
')
AND r1.rtlist_num =
(SELECT MAX (rtlist_num)
FROM rth' || V_DB_Link || '
WHERE fxd_crncy_code =
r1.fxd_crncy_code
AND var_crncy_code =
r1.var_crncy_code
AND ratecode = r1.ratecode
AND rtlist_date = r1.rtlist_date
AND del_flg = ''N''
and (var_crncy_code, RTLIST_DATE)
IN
(SELECT
VAR_CRNCY_CODE, MAX(RTLIST_DATE) FROM RTH' || V_DB_Link || '
WHERE rtlist_date <= '''||
G_Current_Business_Date ||'''
AND del_flg = ''N''
group by VAR_CRNCY_CODE)))
');

EXECUTE IMMEDIATE ('Insert Into CURRENCY_FEED_STG (


COUNTRY,
LE_BOOK,
CURRENCY,
CCY_DATE,
WASH_RATE,
FEED_DATE,
PRODUCT,
LCHG_TIME,
RUN_STATUS,
DATE_LAST_MODIFIED ,
DATE_CREATION)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
FXD_CRNCY_CODE CURRENCY,
Rtlist_Date CCY_DATE,
NVL(decode(FXD_CRNCY_CODE,''ITL'',
var_crncy_units/1000,''JPY'', var_crncy_units/100,''MGA'',
var_crncy_units/100,''KES'', var_crncy_units/100,var_crncy_units),0)
WASH_RATE, '||
''''|| G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
LCHG_TIME,
''N'' RUN_STATUS,
LCHG_TIME DATE_LAST_MODIFIED ,
LCHG_TIME DATE_CREATION
FROM
( SELECT r1.rtlist_date , r1.fxd_crncy_code ,
r1.var_crncy_units ,LCHG_TIME,RCRE_TIME
FROM RTL' || V_DB_Link || ' r1
WHERE r1.entity_cre_flg = ''Y''
AND r1.del_flg = ''N''
AND r1.var_crncy_code = ''MUR''
AND r1.ratecode = (SELECT report_rate_code FROM GCT'
|| V_DB_Link || ')
AND (fxd_crncy_code,r1.rtlist_num) in
(SELECT fxd_crncy_code,MAX (rtlist_num)
FROM RTL' || V_DB_Link || '
WHERE fxd_crncy_code = r1.fxd_crncy_code
AND var_crncy_code = r1.var_crncy_code
AND ratecode = r1.ratecode
AND rtlist_date = r1.rtlist_date
AND entity_cre_flg = ''Y''
AND rtlist_date <= '''||
G_Current_Business_Date ||'''
AND del_flg = ''N''
group by fxd_crncy_code )
UNION ALL
SELECT r1.rtlist_date , r1.fxd_crncy_code ,
r1.var_crncy_units,LCHG_TIME,RCRE_TIME
FROM rth' || V_DB_Link || ' r1
WHERE r1.var_crncy_code = ''MUR''
AND r1.del_flg = ''N''
AND r1.ratecode = (SELECT report_rate_code FROM gct'
|| V_DB_Link || ')
AND r1.rtlist_num = (SELECT MAX (rtlist_num)
FROM rth' || V_DB_Link || '
WHERE fxd_crncy_code =
r1.fxd_crncy_code
AND var_crncy_code =
r1.var_crncy_code
AND ratecode = r1.ratecode
AND rtlist_date =
r1.rtlist_date
AND del_flg = ''N''
and (var_crncy_code,
RTLIST_DATE) IN
(SELECT
VAR_CRNCY_CODE, MAX(RTLIST_DATE)
FROM
RTH' || V_DB_Link || '
WHERE rtlist_date <=
'''|| G_Current_Business_Date ||'''
AND del_flg = ''N''
group by
VAR_CRNCY_CODE))) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables RTL Does not
exists/not accessiable !! Aborting execution.');
closeLogFile;
RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CURRENCY_FEED_STG !!');
closeLogFile;
RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');
COMMIT;

RETURN SUCCESSFUL_EXIT;

END getCcyRatesStgData;

/*#######################################################################
##################################################
Name : getCustomerStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CUSTOMERS_DLY].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/
FUNCTION getCustomerStgData(P_Country IN VARCHAR2, P_Le_Book IN
VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;
IF (P_DBLink IS NOT NULL) THEN
BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getCustomerStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage*/

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CUSTOMERS_FEED_STG


population......');

BEGIN

writeLogInfo ('Insert Into CUSTOMERS_FEED_STG(


COUNTRY,LE_BOOK,
CUSTOMER_ID,CUSTOMER_NAME,
CUSTOMER_ACRONYM,VISION_OUC,
VISION_SBU,CB_ORG_CODE,
CB_ECONOMIC_ACT_CODE,CUSTOMER_NRE_FLAG,
NRE_NATIONALITY,CUST_COMU_CNTRY_CODE,
CUST_PERM_CNTRY_CODE,CB_MAJOR_PARTY_INDICATOR,
PSPRT_DETAILS,NAT_ID_CARD_NUM,
PRIMARY_CID,PARENT_CID,
ULTIMATE_PARENT,ACCOUNT_OFFICER,
CUSTOMER_SEX,CUST_EMP_ID,Related_Party,
CUST_TYPE_CODE,EMP_ID,

CUSTOMER_OPEN_DATE,CUSTOMER_TIERING,CUST_STAT_CODE,
CREDIT_CLASSIFICATION,NUM_OF_ACCOUNTS,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED,Comm_Address_1,
Comm_Address_2,Comm_City ,
Comm_State,Comm_Pin_Code,

Phone_Number,Customer_TIN,PROFIT_CENTER,CUST_GRP,CUST_MINOR_FLAG)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(CMG.CUST_ID) CUSTOMER_ID,
nvl(CMG.CUST_NAME,CMG.CUST_SHORT_NAME)
CUSTOMER_NAME,
CMG.CUST_SHORT_NAME CUSTOMER_ACRONYM,
CMG.PRIMARY_SOL_ID VISION_OUC,
case when CMG.PRIMARY_SOL_ID=''016'' then ''07''
when CMG.PRIMARY_SOL_ID=''17'' then ''08''
when CMG.PRIMARY_SOL_ID=''79'' then ''09''
when CMG.PRIMARY_SOL_ID=''18'' then
'||''''||P_Le_Book||'''' ||'
when CMG.PRIMARY_SOL_ID=''19'' then ''04''
when CMG.PRIMARY_SOL_ID=''89'' then ''06''
when CMG.PRIMARY_SOL_ID in (select substr(vision_ouc,9)
from ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
GAM.SUB_SECTOR_CODE CB_ORG_CODE,
CEM.FREE_CODE_3 CB_ECONOMIC_ACT_CODE,
CMG.CUST_NRE_FLG CUSTOMER_NRE_FLAG,
NCT.NRE_NATIONALITY NRE_NATIONALITY,
CMG.CUST_COMU_CNTRY_CODE CUST_COMU_CNTRY_CODE,
CMG.CUST_PERM_CNTRY_CODE CUST_PERM_CNTRY_CODE,
CASE WHEN CMG.CUST_STAT_CODE=''06'' THEN ''Y''
ELSE ''N'' END CB_MAJOR_PARTY_INDICATOR,
CMG.PSPRT_NUM PSPRT_DETAILS,
CMG.NAT_ID_CARD_NUM NAT_ID_CARD_NUM,
TRIM(CMG.CUST_ID) PRIMARY_CID,
TRIM(CMG.CUST_ID) PARENT_CID,
TRIM(CMG.CUST_ID) ULTIMATE_PARENT,
GAM.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
CMG.CUST_SEX CUSTOMER_SEX,
CMG.Emp_id CUST_EMP_ID,
CEM.Free_Code_2 Related_Party,
CMG.CUST_TYPE_CODE CUST_TYPE_CODE,
GAM.EMP_ID EMP_ID,
CMG.CUST_OPN_DATE CUSTOMER_OPEN_DATE,
'''' CUSTOMER_TIERING,
CMG.CUST_STAT_CODE CUST_STAT_CODE,
CEM.FREE_CODE_9 CREDIT_CLASSIFICATION,
CMG.NUM_OF_ACCOUNTS NUM_OF_ACCOUNTS,'||
''''||G_Current_Business_Date ||''''||' FEED_DATE,
'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
CMG.RCRE_TIME DATE_CREATION,
CMG.LCHG_TIME DATE_LAST_MODIFIED,
CMG.Cust_Comu_Addr1 Comm_Address_1,
CMG.Cust_Comu_Addr2 Comm_Address_2,
NVL(TRIM(CMG.Cust_Comu_City_Code),''XXXXXXXXX'')
Comm_City ,
NVL(TRIM(CMG.Cust_Comu_State_Code),''XXXXXXXXX'')
Comm_State,
CMG.Cust_Comu_Pin_Code Comm_Pin_Code,
CASE WHEN
NVL(TRIM(CMG.Cust_Comu_Phone_Num_1),''0'') =''0'' THEN
CMG.Cust_Perm_Phone_Num ELSE CMG.Cust_Comu_Phone_Num_1 END Phone_Number,
CMG.FREE_TEXT_3 Customer_TIN, ''NA''
PROFIT_CENTER,CMG.CUST_GRP,CMG.CUST_MINOR_FLG
FROM
(SELECT Emp_id,CMG.* FROM CMG' || V_DB_Link ||
',GET' || V_DB_Link || ' WHERE CMG.CUST_EMP_ID = EMP_ID (+) AND
GET.ENTITY_CRE_FLG(+) =''Y'' AND GET.DEL_FLG(+) =''N'' ) CMG,
(SELECT GAM.EMP_ID,FREE_CODE_5,FREE_CODE_4,
FREE_CODE_3, GAM.CUST_ID,SUB_SECTOR_CODE,ACCT_MGR_USER_ID FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM ,GAC' || V_DB_Link || ' WHERE
GAM.ACID = GAC.ACID(+)) GAM,
NCT'|| V_DB_Link || ' NCT,
CEM'|| V_DB_Link || ' CEM
WHERE
CMG.CUST_ID = GAM.CUST_ID (+)
AND CMG.CUST_ID = NCT.CUST_ID(+)
AND CMG.CUST_ID = CEM.CUST_ID (+)
AND CMG.ENTITY_CRE_FLG = ''Y''
AND (CMG.LCHG_TIME >
'||''''||G_LastBusinessDateRun||''' or CEM.LCHG_TIME >
'||''''||G_LastBusinessDateRun||''' )');

EXECUTE IMMEDIATE ('Insert Into CUSTOMERS_FEED_STG(


COUNTRY,LE_BOOK,
CUSTOMER_ID,CUSTOMER_NAME,
CUSTOMER_ACRONYM,VISION_OUC,
VISION_SBU,CB_ORG_CODE,
CB_ECONOMIC_ACT_CODE,CUSTOMER_NRE_FLAG,
NRE_NATIONALITY,CUST_COMU_CNTRY_CODE,
CUST_PERM_CNTRY_CODE,CB_MAJOR_PARTY_INDICATOR,
PSPRT_DETAILS,NAT_ID_CARD_NUM,
PRIMARY_CID,PARENT_CID,
ULTIMATE_PARENT,ACCOUNT_OFFICER,
CUSTOMER_SEX,CUST_EMP_ID,Related_Party,
CUST_TYPE_CODE,EMP_ID,

CUSTOMER_OPEN_DATE,CUSTOMER_TIERING,CUST_STAT_CODE,
CREDIT_CLASSIFICATION,NUM_OF_ACCOUNTS,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED,Comm_Address_1,
Comm_Address_2,Comm_City ,
Comm_State,Comm_Pin_Code,

Phone_Number,Customer_TIN,PROFIT_CENTER,CUST_GRP,CUST_MINOR_FLAG)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(CMG.CUST_ID) CUSTOMER_ID,
nvl(CMG.CUST_NAME,CMG.CUST_SHORT_NAME)
CUSTOMER_NAME,
CMG.CUST_SHORT_NAME CUSTOMER_ACRONYM,
CMG.PRIMARY_SOL_ID VISION_OUC,
case when CMG.PRIMARY_SOL_ID=''016'' then ''07''
when CMG.PRIMARY_SOL_ID=''17'' then ''08''
when CMG.PRIMARY_SOL_ID=''79'' then ''09''
when CMG.PRIMARY_SOL_ID=''18'' then
'||''''||P_Le_Book||'''' ||'
when CMG.PRIMARY_SOL_ID=''19'' then ''04''
when CMG.PRIMARY_SOL_ID=''89'' then ''06''
when CMG.PRIMARY_SOL_ID in (select substr(vision_ouc,9)
from ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
GAM.SUB_SECTOR_CODE CB_ORG_CODE,
CEM.FREE_CODE_3 CB_ECONOMIC_ACT_CODE,
CMG.CUST_NRE_FLG CUSTOMER_NRE_FLAG,
NCT.NRE_NATIONALITY NRE_NATIONALITY,
CMG.CUST_COMU_CNTRY_CODE CUST_COMU_CNTRY_CODE,
CMG.CUST_PERM_CNTRY_CODE CUST_PERM_CNTRY_CODE,
CASE WHEN CMG.CUST_STAT_CODE=''06'' THEN ''Y''
ELSE ''N'' END CB_MAJOR_PARTY_INDICATOR,
CMG.PSPRT_NUM PSPRT_DETAILS,
CMG.NAT_ID_CARD_NUM NAT_ID_CARD_NUM,
TRIM(CMG.CUST_ID) PRIMARY_CID,
TRIM(CMG.CUST_ID) PARENT_CID,
TRIM(CMG.CUST_ID) ULTIMATE_PARENT,
GAM.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
CMG.CUST_SEX CUSTOMER_SEX,
CMG.Emp_id CUST_EMP_ID,
CEM.Free_Code_2 Related_Party,
CMG.CUST_TYPE_CODE CUST_TYPE_CODE,
GAM.EMP_ID EMP_ID,
CMG.CUST_OPN_DATE CUSTOMER_OPEN_DATE,
'''' CUSTOMER_TIERING,
CMG.CUST_STAT_CODE CUST_STAT_CODE,
CEM.FREE_CODE_9 CREDIT_CLASSIFICATION,
CMG.NUM_OF_ACCOUNTS NUM_OF_ACCOUNTS,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
CMG.RCRE_TIME DATE_CREATION,
CMG.LCHG_TIME DATE_LAST_MODIFIED,
CMG.Cust_Comu_Addr1 Comm_Address_1,
CMG.Cust_Comu_Addr2 Comm_Address_2,
NVL(TRIM(CMG.Cust_Comu_City_Code),''XXXXXXXXX'')
Comm_City ,
NVL(TRIM(CMG.Cust_Comu_State_Code),''XXXXXXXXX'')
Comm_State,
CMG.Cust_Comu_Pin_Code Comm_Pin_Code,
CASE WHEN
NVL(TRIM(CMG.Cust_Comu_Phone_Num_1),''0'') =''0'' THEN
CMG.Cust_Perm_Phone_Num ELSE CMG.Cust_Comu_Phone_Num_1 END Phone_Number,
CMG.FREE_TEXT_3 Customer_TIN, ''NA''
PROFIT_CENTER,CMG.CUST_GRP,CMG.CUST_MINOR_FLG
FROM
(SELECT Emp_id,CMG.* FROM CMG' || V_DB_Link ||
',GET' || V_DB_Link || ' WHERE CMG.CUST_EMP_ID = EMP_ID (+) AND
GET.ENTITY_CRE_FLG(+) =''Y'' AND GET.DEL_FLG(+) =''N'' ) CMG,
(SELECT GAM.EMP_ID,FREE_CODE_5,FREE_CODE_4,
FREE_CODE_3, GAM.CUST_ID,SUB_SECTOR_CODE,ACCT_MGR_USER_ID FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM ,GAC' || V_DB_Link || ' WHERE
GAM.ACID = GAC.ACID(+)) GAM,
NCT'|| V_DB_Link || ' NCT,
CEM'|| V_DB_Link || ' CEM
WHERE
CMG.CUST_ID = GAM.CUST_ID (+)
AND CMG.CUST_ID = NCT.CUST_ID(+)
AND CMG.CUST_ID = CEM.CUST_ID (+)
AND CMG.ENTITY_CRE_FLG = ''Y''
AND (CMG.LCHG_TIME >
'||''''||G_LastBusinessDateRun||''' or CEM.LCHG_TIME >
'||''''||G_LastBusinessDateRun||''' )');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables CMG/GAM/NCT Does
not exists/not accessiable !! Aborting execution.');
closeLogFile;
RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CUSTOMERS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getCustomerStgData;

/*#######################################################################
##################################################
Name : getAccountsStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [ACCOUNTS_DLY].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getAccountsStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getAccountsStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'ACCOUNTS_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop ACCOUNTS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table ACCOUNTS_FEED_STG


population......');

BEGIN

writeLogInfo ('Insert Into ACCOUNTS_FEED_STG (


COUNTRY, LE_BOOK,
ACCOUNT_NO,VISION_OUC,
VISION_SBU,SMT_ACCT_STATUS,
SMT_ACCT_STATUS_DATE,CAM_ACCT_STATUS,
CAM_ACCT_STATUS_DATE,CUSTOMER_ID,
CURRENCY,ACCOUNT_NAME,
VISION_GL,ACCOUNT_OFFICER,
ACCOUNT_ATTRIBUTE_3,ACCOUNT_TYPE,
SCHM_CODE,ACCOUNT_OPEN_DATE,
FREEZE_STATUS,CLS_ACCT_STATUS,
CLEARED_BALANCE,UNCLEARED_BALANCE,
DRAWING_POWER,LIEN_AMT,
SYSTEM_RESERVED_AMT,ACID,
SECTOR_CODE,
SUB_SECTOR_CODE,
CB_ORG_CODE_1 ,
CB_ORG_CODE_2 ,
CB_ORG_CODE_3 ,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,INT_TBL_CODE,IBAN)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
GAM.FORACID ACCOUNT_NO,
GAM.SOL_ID VISION_OUC,
case when TRIM(GAM.CUST_ID) is not null then case
when GAM.SOL_ID=''16'' then ''07''
when GAM.SOL_ID=''17'' then ''08''
when GAM.SOL_ID=''79'' then ''09''
when GAM.SOL_ID=''18'' then '||''''||P_Le_Book||''''
||'
when GAM.SOL_ID=''19'' then ''04''
when GAM.SOL_ID=''89'' then ''06''
when GAM.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end else ''NA'' end
VISION_SBU,
SMT.ACCT_STATUS SMT_ACCT_STATUS,
SMT.ACCT_STATUS_DATE SMT_ACCT_STATUS_DATE,
CAM.ACCT_STATUS CAM_ACCT_STATUS,
CAM.ACCT_STATUS_DATE CAM_ACCT_STATUS_DATE,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
GAM.ACCT_CRNCY_CODE CURRENCY,
GAM.ACCT_NAME ACCOUNT_NAME,
GAM.GL_SUB_HEAD_CODE VISION_GL,
GAM.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
GAC.Free_code_10 ACCOUNT_ATTRIBUTE_3,
GAM.SCHM_TYPE ACCOUNT_TYPE,
GAM.SCHM_CODE SCHM_CODE,
GAM.ACCT_OPN_DATE ACCOUNT_OPEN_DATE,
Trim(GAM.FREZ_CODE) FREEZE_STATUS,
Trim(GAM.ACCT_CLS_FLG) CLS_ACCT_STATUS,
GAM.CLR_BAL_AMT
CLEARED_BALANCE,
GAM.UN_CLR_BAL_AMT
UNCLEARED_BALANCE,
GAM.DRWNG_POWER
DRAWING_POWER,
GAM.LIEN_AMT
LIEN_AMT,
GAM.SYSTEM_RESERVED_AMT SYSTEM_RESERVED_AMT,
TRIM(GAM.ACID) ACID,
GAC.SECTOR_CODE SECTOR_CODE,
GAC.SUB_SECTOR_CODE SUB_SECTOR_CODE,
GAC.FREE_CODE_2,
GAC.FREE_CODE_3,
GAC.FREE_CODE_4,'||
''''||G_Current_Business_Date ||''''||'FEED_DATE,
'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
GAM.LCHG_TIME DATE_LAST_MODIFIED,
GAM.RCRE_TIME DATE_CREATION,
(SELECT INT_TBL_CODE
FROM ITC' || V_DB_Link || ' T1,
(SELECT
ENTITY_ID,MAX(INT_TBL_CODE_SRL_NUM) INT_TBL_CODE_SRL_NUM
FROM
ITC' || V_DB_Link || ' T1
WHERE START_DATE <=
'||''''||G_LastBusinessDateRun||'''' ||'
AND END_DATE >=
'||''''||G_LastBusinessDateRun||'''' ||'
GROUP BY ENTITY_ID) T2
WHERE T1.ENTITY_ID = T2.ENTITY_ID
AND T1.INT_TBL_CODE_SRL_NUM
=T2.INT_TBL_CODE_SRL_NUM
AND T1.ENTITY_ID = GAM.ACID
AND INT_TBL_CODE IS NOT NULL)
INT_TBL_CODE,
IBAN_FORACID IBAN
FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
GAC' || V_DB_Link || ',
SMT' || V_DB_Link || ' SMT,
CAM' || V_DB_Link || ' CAM,
CMG' || V_DB_Link || ' CMG,
CEM' || V_DB_Link || ' CEM,
IBAN' || V_DB_Link || ' IBAN
WHERE
GAM.ACID = SMT.ACID (+)
AND GAM.ACID = GAC.ACID (+)
AND GAM.ACID = CAM.ACID (+)
AND GAM.cust_ID = CMG.CUST_ID (+)
AND GAM.cust_ID = CEM.CUST_ID (+)
AND GAM.ACID = IBAN.ACID (+)
AND GAM.ENTITY_CRE_FLG = ''Y''
AND ( GAM.LCHG_TIME
>'||''''||G_LastBusinessDateRun||'''' ||' OR

NVL(SMT.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||')
>'||''''||G_LastBusinessDateRun||'''' ||' OR

NVL(GAC.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||')
>'||''''||G_LastBusinessDateRun||'''' ||' OR

NVL(CMG.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||')
>'||''''||G_LastBusinessDateRun||'''' ||' OR

NVL(CEM.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||')
>'||''''||G_LastBusinessDateRun||'''' ||' OR

NVL(CAM.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||') >


'||''''||G_LastBusinessDateRun||'''' ||')');

EXECUTE IMMEDIATE ('Insert Into ACCOUNTS_FEED_STG (


COUNTRY, LE_BOOK,
ACCOUNT_NO,VISION_OUC,
VISION_SBU,SMT_ACCT_STATUS,
SMT_ACCT_STATUS_DATE,CAM_ACCT_STATUS,
CAM_ACCT_STATUS_DATE,CUSTOMER_ID,
CURRENCY,ACCOUNT_NAME,
VISION_GL,ACCOUNT_OFFICER,
ACCOUNT_ATTRIBUTE_3,ACCOUNT_TYPE,
SCHM_CODE,ACCOUNT_OPEN_DATE,
FREEZE_STATUS,CLS_ACCT_STATUS,
CLEARED_BALANCE,UNCLEARED_BALANCE,
DRAWING_POWER,LIEN_AMT,
SYSTEM_RESERVED_AMT,ACID,
SECTOR_CODE,
SUB_SECTOR_CODE,
CB_ORG_CODE_1 ,
CB_ORG_CODE_2 ,
CB_ORG_CODE_3 ,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,INT_TBL_CODE,IBAN)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
GAM.FORACID ACCOUNT_NO,
GAM.SOL_ID VISION_OUC,
case when TRIM(GAM.CUST_ID) is not null then case
when GAM.SOL_ID=''16'' then ''07''
when GAM.SOL_ID=''17'' then ''08''
when GAM.SOL_ID=''79'' then ''09''
when GAM.SOL_ID=''18'' then '||''''||P_Le_Book||''''
||'
when GAM.SOL_ID=''19'' then ''04''
when GAM.SOL_ID=''89'' then ''06''
when GAM.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end else ''NA'' end
VISION_SBU,
SMT.ACCT_STATUS SMT_ACCT_STATUS,
SMT.ACCT_STATUS_DATE SMT_ACCT_STATUS_DATE,
CAM.ACCT_STATUS CAM_ACCT_STATUS,
CAM.ACCT_STATUS_DATE CAM_ACCT_STATUS_DATE,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
GAM.ACCT_CRNCY_CODE CURRENCY,
GAM.ACCT_NAME ACCOUNT_NAME,
GAM.GL_SUB_HEAD_CODE VISION_GL,
GAM.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
GAC.Free_code_10 ACCOUNT_ATTRIBUTE_3,
GAM.SCHM_TYPE ACCOUNT_TYPE,
GAM.SCHM_CODE SCHM_CODE,
GAM.ACCT_OPN_DATE ACCOUNT_OPEN_DATE,
Trim(GAM.FREZ_CODE) FREEZE_STATUS,
Trim(GAM.ACCT_CLS_FLG) CLS_ACCT_STATUS,
GAM.CLR_BAL_AMT
CLEARED_BALANCE,
GAM.UN_CLR_BAL_AMT
UNCLEARED_BALANCE,
GAM.DRWNG_POWER
DRAWING_POWER,
GAM.LIEN_AMT
LIEN_AMT,
GAM.SYSTEM_RESERVED_AMT SYSTEM_RESERVED_AMT,
TRIM(GAM.ACID) ACID,
GAC.SECTOR_CODE SECTOR_CODE,
GAC.SUB_SECTOR_CODE SUB_SECTOR_CODE,
GAC.FREE_CODE_2,
GAC.FREE_CODE_3,
GAC.FREE_CODE_4,'||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
GAM.LCHG_TIME DATE_LAST_MODIFIED,
GAM.RCRE_TIME DATE_CREATION,
(SELECT INT_TBL_CODE
FROM ITC' || V_DB_Link || ' T1,
(SELECT
ENTITY_ID,MAX(INT_TBL_CODE_SRL_NUM) INT_TBL_CODE_SRL_NUM
FROM
ITC' || V_DB_Link || ' T1
WHERE START_DATE <=
'||''''||G_LastBusinessDateRun||'''' ||'
AND END_DATE >=
'||''''||G_LastBusinessDateRun||'''' ||'
GROUP BY ENTITY_ID) T2
WHERE T1.ENTITY_ID = T2.ENTITY_ID
AND T1.INT_TBL_CODE_SRL_NUM
=T2.INT_TBL_CODE_SRL_NUM
AND T1.ENTITY_ID = GAM.ACID
AND INT_TBL_CODE IS NOT NULL)
INT_TBL_CODE,
IBAN_FORACID IBAN
FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
GAC' || V_DB_Link || ',
SMT' || V_DB_Link || ' SMT,
CAM' || V_DB_Link || ' CAM,
CMG' || V_DB_Link || ' CMG,
CEM' || V_DB_Link || ' CEM,
IBAN' || V_DB_Link || ' IBAN
WHERE
GAM.ACID = SMT.ACID (+)
AND GAM.ACID = GAC.ACID (+)
AND GAM.ACID = CAM.ACID (+)
AND GAM.cust_ID = CMG.CUST_ID (+)
AND GAM.cust_ID = CEM.CUST_ID (+)
AND GAM.ACID = IBAN.ACID (+)
AND GAM.ENTITY_CRE_FLG = ''Y''
AND ( GAM.LCHG_TIME
>'||''''||G_LastBusinessDateRun||'''' ||' OR

NVL(SMT.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||')
>'||''''||G_LastBusinessDateRun||'''' ||' OR

NVL(GAC.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||')
>'||''''||G_LastBusinessDateRun||'''' ||' OR

NVL(CMG.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||')
>'||''''||G_LastBusinessDateRun||'''' ||' OR

NVL(CEM.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||')
>'||''''||G_LastBusinessDateRun||'''' ||' OR
NVL(CAM.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||') >
'||''''||G_LastBusinessDateRun||'''' ||')');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/SMT/CAM/CMG
Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate ACCOUNTS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getAccountsStgData;

/*#######################################################################
##################################################
Name : getFinacleLoansStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CONTRACTS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit
Table Name Query Insert Update
Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getFinacleLoansStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinacleLoansStgData');
IF (retVal != 0 AND retVal != RERUN_EXIT)
THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'CONTRACTS_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CONTRACTS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CONTRACTS_FEED_STG


population......');

BEGIN

writeLogInfo('Insert Into CONTRACTS_FEED_STG (


COUNTRY, LE_BOOK,
CONTRACT_ID,CUSTOMER_ID,
VISION_OUC,VISION_SBU,
ACCOUNT_OFFICER,DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
MATURITY_DATE,
DAYS_REMAINING_MAT,DAYS_START_MAT,
PRINCIPAL_GL,MIS_CURRENCY,
INTEREST_RATE,COST_OF_FUNDS_RATE,
CONTRACT_STATUS,RECORD_TYPE,
SOURCE_ID,BENEFICIARY,
TRADE_REF_NO,CURRENT_AC_NO,
OPER_ACID,DIS_AMT,
FEED_DATE,PRODUCT,
RUN_STATUS ,DATE_LAST_MODIFIED,
DATE_CREATION,Col_Sequence_Number ,
Col_Code ,Col_Type,
Col_Narration,Col_Value,
Process_Type,LOAN_MATURITY_DATE)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(GAM.FORACID) CONTRACT_ID,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
GAM.SOL_ID VISION_OUC,
case when GAM.SOL_ID=''16'' then ''07''
when GAM.SOL_ID=''17'' then ''08''
when GAM.SOL_ID=''79'' then ''09''
when GAM.SOL_ID=''18'' then '||''''||P_Le_Book||''''
||'
when GAM.SOL_ID=''19'' then ''04''
when GAM.SOL_ID=''89'' then ''06''
when GAM.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
GAM.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
GAM.SCHM_TYPE DEAL_TYPE,
GSP.SCHM_CODE DEAL_SUB_TYPE,
LHT.LIM_SANCT_DATE START_DATE,
NVL(LAM.EI_PERD_END_DATE,LHT.LIM_SANCT_DATE)
MATURITY_DATE,
TRUNC(LAM.EI_PERD_END_DATE - SYSDATE)
DAYS_REMAINING_MAT,
TRUNC(LAM.EI_PERD_END_DATE - LHT.LIM_SANCT_DATE)
DAYS_START_MAT,
GAM.GL_SUB_HEAD_CODE PRINCIPAL_GL,
GAM.ACCT_CRNCY_CODE MIS_CURRENCY,
nvl(t1.interest_rate_dr,EIT.INTEREST_RATE)
INTEREST_RATE,
0 COST_OF_FUNDS_RATE,
CASE WHEN GAM.CLR_BAL_AMT < 0 THEN LHT.STATUS
ELSE ''E'' END CONTRACT_STATUS,
5 RECORD_TYPE,
7 SOURCE_ID,
''NA'' BENEFICIARY,
''NA'' TRADE_REF_NO,
''NA'' CURRENT_AC_NO,
TRIM(OP_ACID) OPER_ACID,
LAM.DIS_AMT DIS_AMT, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
LHT.LCHG_TIME DATE_LAST_MODIFIED,
LHT.RCRE_TIME DATE_CREATION,
''NA'' Col_Sequence_Number ,
''NA'' Col_Code ,
''NA'' Col_Type ,
''NA'' Col_Narration ,
0 Col_Value ,
''F'' Process_Type,
CASE WHEN REP_PERD_MTHS !=0 THEN
ADD_MONTHS(ACCT_OPN_DATE,REP_PERD_MTHS) ELSE
(ACCT_OPN_DATE)+REP_PERD_DAYS END LOAN_MATURITY_DATE
FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
GAC' || V_DB_Link || ' GAC,
LHT' || V_DB_Link || ' LHT,
CMG' || V_DB_Link || ' CMG,
GSP' || V_DB_Link || ' GSP,
EIT' || V_DB_Link || ' EIT,
LAM' || V_DB_Link || ' LAM,
CEM' || V_DB_Link || ' CEM,
temp_rates t1
WHERE
GAM.ACID = LHT.ACID
AND GAM.ACID = GAC.ACID(+)
AND GAM.ACID = EIT.ENTITY_ID
AND GAM.ACID =LAM.ACID
AND GAM.CUST_ID =CMG.CUST_ID(+)
AND GAM.CUST_ID =CEM.CUST_ID(+)
AND GAM.SCHM_CODE = GSP.SCHM_CODE
AND GAM.SCHM_TYPE = ''LAA''
AND GAM.DEL_FLG = ''N''
AND GAM.ENTITY_CRE_FLG = ''Y''
AND GAM.FORACID =T1.ACCOUNT_NO(+)
AND (LAM.LCHG_TIME >=
'''||G_LastBusinessDateRun||''' OR LHT.LCHG_TIME >=
'''||G_LastBusinessDateRun||'''
OR CEM.LCHG_TIME >=
'''||G_LastBusinessDateRun||''' OR CMG.LCHG_TIME >=
'''||G_LastBusinessDateRun||'''
OR EIT.LCHG_TIME >=
'''||G_LastBusinessDateRun||''')
UNION
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(GAM.FORACID) CONTRACT_ID,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
GAM.SOL_ID VISION_OUC,
case when GAM.SOL_ID=''16'' then ''07''
when GAM.SOL_ID=''17'' then ''08''
when GAM.SOL_ID=''79'' then ''09''
when GAM.SOL_ID=''18'' then '||''''||P_Le_Book||'''' ||'
when GAM.SOL_ID=''19'' then ''04''
when GAM.SOL_ID=''89'' then ''06''
when GAM.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
GAM.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
GAM.SCHM_TYPE DEAL_TYPE,
''NA'' DEAL_SUB_TYPE,
LHT.LIM_SANCT_DATE START_DATE,
NVL(LHT.LIM_EXP_DATE,LHT.LIM_SANCT_DATE)
MATURITY_DATE,
0 DAYS_REMAINING_MAT,
0 DAYS_START_MAT,
GAM.GL_SUB_HEAD_CODE PRINCIPAL_GL,
GAM.ACCT_CRNCY_CODE MIS_CURRENCY,
0 INTEREST_RATE,
0 COST_OF_FUNDS_RATE,
''A'' CONTRACT_STATUS,
5 RECORD_TYPE,
7 SOURCE_ID,
''NA'' BENEFICIARY,
''NA'' TRADE_REF_NO,
''NA'' CURRENT_AC_NO,
''NA'' OPER_ACID,
0 DIS_AMT, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
LHT.LCHG_TIME DATE_LAST_MODIFIED,
LHT.RCRE_TIME DATE_CREATION ,
SDR.SECU_SRL_NUM Col_Sequence_Number ,
SDR.SECU_CODE Col_Code ,
SDR.SECU_TYPE_IND Col_Type ,
LHT.DESC_OF_SECURITY Col_Narration ,
SDR.SECU_VALUE Col_Value ,
''C'' Process_Type,
NULL
FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
SDR' || V_DB_Link || ' SDR,
LHT' || V_DB_Link || ' LHT,
CEM' || V_DB_Link || ' CEM
WHERE
GAM.ACID = LHT.ACID
AND GAM.ACID = SDR.ACID
AND GAM.cust_ID = CEM.CUST_ID (+)
AND SDR.DEL_FLG = ''N''
AND GAM.ENTITY_CRE_FLG = ''Y''
AND LHT.STATUS =''A''
AND SDR.LCHG_TIME >=
'||''''||G_LastBusinessDateRun||'''');

EXECUTE IMMEDIATE ('Insert Into CONTRACTS_FEED_STG (


COUNTRY, LE_BOOK,
CONTRACT_ID,CUSTOMER_ID,
VISION_OUC,VISION_SBU,
ACCOUNT_OFFICER,DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
MATURITY_DATE,
DAYS_REMAINING_MAT,DAYS_START_MAT,
PRINCIPAL_GL,MIS_CURRENCY,
INTEREST_RATE,COST_OF_FUNDS_RATE,
CONTRACT_STATUS,RECORD_TYPE,
SOURCE_ID,BENEFICIARY,
TRADE_REF_NO,CURRENT_AC_NO,
OPER_ACID,DIS_AMT,
FEED_DATE,PRODUCT,
RUN_STATUS ,DATE_LAST_MODIFIED,
DATE_CREATION,Col_Sequence_Number ,
Col_Code ,Col_Type,
Col_Narration,Col_Value,
Process_Type,LOAN_MATURITY_DATE)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(GAM.FORACID) CONTRACT_ID,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
GAM.SOL_ID VISION_OUC,
case when GAM.SOL_ID=''16'' then ''07''
when GAM.SOL_ID=''17'' then ''08''
when GAM.SOL_ID=''79'' then ''09''
when GAM.SOL_ID=''18'' then '||''''||P_Le_Book||'''' ||'
when GAM.SOL_ID=''19'' then ''04''
when GAM.SOL_ID=''89'' then ''06''
when GAM.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
GAM.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
GAM.SCHM_TYPE DEAL_TYPE,
GSP.SCHM_CODE DEAL_SUB_TYPE,
LHT.LIM_SANCT_DATE START_DATE,
NVL(LAM.EI_PERD_END_DATE,LHT.LIM_SANCT_DATE)
MATURITY_DATE,
TRUNC(LAM.EI_PERD_END_DATE - SYSDATE)
DAYS_REMAINING_MAT,
TRUNC(LAM.EI_PERD_END_DATE - LHT.LIM_SANCT_DATE)
DAYS_START_MAT,
GAM.GL_SUB_HEAD_CODE PRINCIPAL_GL,
GAM.ACCT_CRNCY_CODE MIS_CURRENCY,
nvl(t1.interest_rate_dr,EIT.INTEREST_RATE)
INTEREST_RATE,
0 COST_OF_FUNDS_RATE,
CASE WHEN GAM.CLR_BAL_AMT < 0 THEN LHT.STATUS
ELSE ''E'' END CONTRACT_STATUS,
5 RECORD_TYPE,
7 SOURCE_ID,
''NA'' BENEFICIARY,
''NA'' TRADE_REF_NO,
''NA'' CURRENT_AC_NO,
TRIM(OP_ACID) OPER_ACID,
LAM.DIS_AMT DIS_AMT, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
LHT.LCHG_TIME DATE_LAST_MODIFIED,
LHT.RCRE_TIME DATE_CREATION,
''NA'' Col_Sequence_Number ,
''NA'' Col_Code ,
''NA'' Col_Type ,
''NA'' Col_Narration ,
0 Col_Value ,
''F'' Process_Type,
CASE WHEN REP_PERD_MTHS !=0 THEN
ADD_MONTHS(ACCT_OPN_DATE,REP_PERD_MTHS) ELSE
(ACCT_OPN_DATE)+REP_PERD_DAYS END LOAN_MATURITY_DATE
FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
GAC' || V_DB_Link || ' GAC,
LHT' || V_DB_Link || ' LHT,
CMG' || V_DB_Link || ' CMG,
GSP' || V_DB_Link || ' GSP,
EIT' || V_DB_Link || ' EIT,
LAM' || V_DB_Link || ' LAM,
CEM' || V_DB_Link || ' CEM,
TEMP_RATES T1
WHERE
GAM.ACID = LHT.ACID
AND GAM.ACID = GAC.ACID(+)
AND GAM.ACID = EIT.ENTITY_ID
AND GAM.ACID =LAM.ACID
AND GAM.CUST_ID =CMG.CUST_ID(+)
AND GAM.SCHM_CODE = GSP.SCHM_CODE
AND GAM.cust_ID = CEM.CUST_ID (+)
AND GAM.FORACID = T1.ACCOUNT_NO(+)
AND GAM.SCHM_TYPE = ''LAA''
AND GAM.DEL_FLG = ''N''
AND GAM.ENTITY_CRE_FLG = ''Y''
AND (LAM.LCHG_TIME >=
'''||G_LastBusinessDateRun||''' OR LHT.LCHG_TIME >=
'''||G_LastBusinessDateRun||'''
OR CEM.LCHG_TIME >=
'''||G_LastBusinessDateRun||''' OR CMG.LCHG_TIME >=
'''||G_LastBusinessDateRun||'''
OR EIT.LCHG_TIME >=
'''||G_LastBusinessDateRun||''')
UNION
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(GAM.FORACID) CONTRACT_ID,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
GAM.SOL_ID VISION_OUC,
case when GAM.SOL_ID=''16'' then ''07''
when GAM.SOL_ID=''17'' then ''08''
when GAM.SOL_ID=''79'' then ''09''
when GAM.SOL_ID=''18'' then '||''''||P_Le_Book||'''' ||'
when GAM.SOL_ID=''19'' then ''04''
when GAM.SOL_ID=''89'' then ''06''
when GAM.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
GAM.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
GAM.SCHM_TYPE DEAL_TYPE,
''NA'' DEAL_SUB_TYPE,
LHT.LIM_SANCT_DATE START_DATE,
NVL(LHT.LIM_EXP_DATE,LHT.LIM_SANCT_DATE)
MATURITY_DATE,
0 DAYS_REMAINING_MAT,
0 DAYS_START_MAT,
GAM.GL_SUB_HEAD_CODE PRINCIPAL_GL,
GAM.ACCT_CRNCY_CODE MIS_CURRENCY,
0 INTEREST_RATE,
0 COST_OF_FUNDS_RATE,
''A'' CONTRACT_STATUS,
5 RECORD_TYPE,
7 SOURCE_ID,
''NA'' BENEFICIARY,
''NA'' TRADE_REF_NO,
''NA'' CURRENT_AC_NO,
''NA'' OPER_ACID,
0 DIS_AMT, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
LHT.LCHG_TIME DATE_LAST_MODIFIED,
LHT.RCRE_TIME DATE_CREATION ,
SDR.SECU_SRL_NUM Col_Sequence_Number ,
SDR.SECU_CODE Col_Code ,
SDR.SECU_TYPE_IND Col_Type ,
LHT.DESC_OF_SECURITY Col_Narration ,
SDR.SECU_VALUE Col_Value ,
''C'' Process_Type,
NULL
FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
SDR' || V_DB_Link || ' SDR,
LHT' || V_DB_Link || ' LHT,
CEM' || V_DB_Link || ' CEM
WHERE
GAM.ACID = LHT.ACID
AND GAM.ACID = SDR.ACID
AND GAM.cust_ID = CEM.CUST_ID (+)
AND SDR.DEL_FLG = ''N''
AND GAM.ENTITY_CRE_FLG = ''Y''
AND LHT.STATUS =''A''
AND SDR.LCHG_TIME >=
'||''''||G_LastBusinessDateRun||'''');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables
GAM/LHT/CMG/GSP/EIT/LAM Does not exists/not accessiable !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACTS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getFinacleLoansStgData;

/*#######################################################################
##################################################
Name : getcontractLCStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CONTRACTS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/
FUNCTION getcontractLCStgData(P_Country IN VARCHAR2, P_Le_Book IN
VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getcontractLCStgData');
IF (retVal != 0 AND retVal != RERUN_EXIT)
THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CONTRACTS_FEED_STG


population......');

BEGIN

writeLogInfo ('INSERT INTO CONTRACTS_FEED_STG(


COUNTRY, LE_BOOK,
CONTRACT_ID,CUSTOMER_ID,
VISION_OUC,VISION_SBU,
ACCOUNT_OFFICER,DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
MATURITY_DATE,DAYS_REMAINING_MAT,
DAYS_START_MAT,PRINCIPAL_GL,
MIS_CURRENCY,INTEREST_RATE,
COST_OF_FUNDS_RATE,CONTRACT_STATUS,
RECORD_TYPE,SOURCE_ID,
BENEFICIARY,TRADE_REF_NO,
CURRENT_AC_NO,OPER_ACID,
DIS_AMT,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
DCMM.DC_REF_NUM CONTRACT_ID,
TRIM(T1.CUST_ID) CUSTOMER_ID,
T1.SOL_ID VISION_OUC,
case when T1.SOL_ID=''016'' then ''07''
when T1.SOL_ID=''17'' then ''08''
when T1.SOL_ID=''79'' then ''09''
when T1.SOL_ID=''18'' then '||''''||P_Le_Book||'''' ||'
when T1.SOL_ID=''19'' then ''04''
when T1.SOL_ID=''89'' then ''06''
when T1.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
T1.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
''DOCUMENTARY CREDIT'' DEAL_TYPE,
DCRM.REG_DESC DEAL_SUB_TYPE,
DCMM.DATE_OPND START_DATE,
NVL(DCMM.EXPIRY_DATE ,DCMM.DATE_OPND)
MATURITY_DATE,
TRUNC(DCMM.EXPIRY_DATE - SYSDATE)
DAYS_REMAINING_MAT,
TRUNC(DCMM.EXPIRY_DATE - DCMM.DATE_OPND)
DAYS_START_MAT,
T2.GL_SUB_HEAD_CODE PRINCIPAL_GL,
DCMM.ACTL_CRNCY_CODE MIS_CURRENCY,
0 INTEREST_RATE,
--0 COST_OF_FUNDS_RATE,
Case when DCMM.ACTL_CRNCY_CODE =''MUR'' then 1
else RATE end COST_OF_FUNDS_RATE,
DCMM.FUNC_CODE CONTRACT_STATUS,
5 RECORD_TYPE,
51 SOURCE_ID,
''NA'' BENEFICIARY,
DCMM.DC_REF_NUM TRADE_REF_NO,
T1.FORACID CURRENT_AC_NO,
''NA'' OPER_ACID,
DCMM.OPEN_VALUE DIS_AMT, '||
''''||G_Current_Business_Date ||''''||'FEED_DATE,
'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
DCMM.LCHG_TIME DATE_LAST_MODIFIED,
DCMM.RCRE_TIME DATE_CREATION
FROM
'||G_GAM_Table||'' || V_DB_Link || ' T1,
DCMM' || V_DB_Link || ' DCMM,
'||G_GAM_Table||'' || V_DB_Link || ' T2,
GAC' || V_DB_Link || ' ,
DCRM' || V_DB_Link || ' DCRM,
CMG' || V_DB_Link || ' CMG,
CEM' || V_DB_Link || ' CEM
WHERE
DCMM.OUR_PARTY_ACID = T1.ACID
AND T2.ACID = DCMM.DC_CONST_ACID
AND T1.ACID = GAC.ACID(+)
AND T1.CUST_ID = CMG.CUST_ID (+)
AND T1.CUST_ID = CEM.CUST_ID (+)
AND DCMM.OPEN_VALUE !=
DCMM.DC_BILL_UTIL_AMT+DCMM.DC_NOBILL_UTIL_AMT
AND EXISTS (SELECT ''X'' FROM SST' || V_DB_Link
|| ' S WHERE S.SET_ID = ''ALL'' AND S.SOL_ID = T1.SOL_ID)
AND DCMM.DC_REG_TYPE IN (''IMPDC'')
AND DCMM.ENTITY_CRE_FLG = ''Y''
AND DCMM.DEL_FLG = ''N''
AND DCMM.CONT_LIAB_AMT != 0
AND DCMM.DC_REG_TYPE = DCRM.REG_TYPE
AND T1.CUST_ID is not null
AND (DCMM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' OR CEM.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
OR CMG.LCHG_TIME >
'''||G_LastBusinessDateRun||''' OR DCRM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' )
UNION
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
DCMM.DC_REF_NUM CONTRACT_ID,
trim(T1.CUST_ID) CUSTOMER_ID,
T1.SOL_ID VISION_OUC,
case when T1.SOL_ID=''016'' then ''07''
when T1.SOL_ID=''17'' then ''08''
when T1.SOL_ID=''79'' then ''09''
when T1.SOL_ID=''18'' then '||''''||P_Le_Book||''''
||'
when T1.SOL_ID=''19'' then ''04''
when T1.SOL_ID=''89'' then ''06''
when T1.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
T1.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
''DOCUMENTARY CREDIT'' DEAL_TYPE,
DCRM.REG_DESC DEAL_SUB_TYPE,
DCMM.DATE_OPND START_DATE,
NVL(DCMM.EXPIRY_DATE ,DCMM.DATE_OPND)
MATURITY_DATE,
TRUNC(DCMM.EXPIRY_DATE - SYSDATE)
DAYS_REMAINING_MAT,
TRUNC(DCMM.EXPIRY_DATE - DCMM.DATE_OPND)
DAYS_START_MAT,
T1.GL_SUB_HEAD_CODE PRINCIPAL_GL,
DCMM.ACTL_CRNCY_CODE MIS_CURRENCY,
0 INTEREST_RATE,
--0 COST_OF_FUNDS_RATE,
Case when DCMM.ACTL_CRNCY_CODE =''MUR'' then 1
else RATE end COST_OF_FUNDS_RATE,
DCMM.FUNC_CODE CONTRACT_STATUS,
5 RECORD_TYPE,
51 SOURCE_ID,
''NA'' BENEFICIARY,
DCMM.DC_REF_NUM TRADE_REF_NO,
T1.FORACID CURRENT_AC_NO,
''NA'' OPER_ACID,
DCMM.OPEN_VALUE DIS_AMT, '||
''''||G_Current_Business_Date ||''''||'FEED_DATE,
'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
DCMM.LCHG_TIME DATE_LAST_MODIFIED,
DCMM.RCRE_TIME DATE_CREATION
FROM
'||G_GAM_Table||'' || V_DB_Link || ' T1,
DCMM' || V_DB_Link || ' DCMM,
'||G_GAM_Table||'' || V_DB_Link || ' T2,
GAC' || V_DB_Link || ' ,
DCRM' || V_DB_Link || ' DCRM,
CMG' || V_DB_Link || ' CMG,
CEM' || V_DB_Link || ' CEM
WHERE
DCMM.OUR_PARTY_ACID = T1.ACID
AND T2.ACID (+) = DCMM.DC_CONST_ACID
AND T1.ACID = GAC.ACID(+)
AND T1.CUST_ID = CMG.CUST_ID (+)
AND T1.CUST_ID = CEM.CUST_ID (+)
AND EXISTS (SELECT ''X'' FROM SST' || V_DB_Link ||
' S WHERE S.SET_ID = ''ALL'' AND S.SOL_ID = T1.SOL_ID)
AND DCMM.DC_REG_TYPE NOT IN (''IMPDC'')
AND DCMM.ENTITY_CRE_FLG = ''Y''
AND DCMM.DEL_FLG = ''N''
AND DCMM.DC_REG_TYPE = DCRM.REG_TYPE
AND T1.CUST_ID is not null
AND (DCMM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' OR DCRM.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
OR CEM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' OR CMG.LCHG_TIME >
'''||G_LastBusinessDateRun||''') ');

EXECUTE IMMEDIATE ('INSERT INTO CONTRACTS_FEED_STG(


COUNTRY, LE_BOOK,
CONTRACT_ID,CUSTOMER_ID,
VISION_OUC,VISION_SBU,
ACCOUNT_OFFICER,DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
MATURITY_DATE,DAYS_REMAINING_MAT,
DAYS_START_MAT,PRINCIPAL_GL,
MIS_CURRENCY,INTEREST_RATE,
COST_OF_FUNDS_RATE,CONTRACT_STATUS,
RECORD_TYPE,SOURCE_ID,
BENEFICIARY,TRADE_REF_NO,
CURRENT_AC_NO,OPER_ACID,
DIS_AMT,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
DCMM.DC_REF_NUM CONTRACT_ID,
TRIM(T1.CUST_ID) CUSTOMER_ID,
T1.SOL_ID VISION_OUC,
case when T1.SOL_ID=''016'' then ''07''
when T1.SOL_ID=''17'' then ''08''
when T1.SOL_ID=''79'' then ''09''
when T1.SOL_ID=''18'' then '||''''||P_Le_Book||''''
||'
when T1.SOL_ID=''19'' then ''04''
when T1.SOL_ID=''89'' then ''06''
when T1.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA''
end VISION_SBU,
T1.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
''DOCUMENTARY CREDIT'' DEAL_TYPE,
DCRM.REG_DESC DEAL_SUB_TYPE,
DCMM.DATE_OPND START_DATE,
NVL(DCMM.EXPIRY_DATE ,DCMM.DATE_OPND)
MATURITY_DATE,
TRUNC(DCMM.EXPIRY_DATE - SYSDATE)
DAYS_REMAINING_MAT,
TRUNC(DCMM.EXPIRY_DATE - DCMM.DATE_OPND)
DAYS_START_MAT,
T2.GL_SUB_HEAD_CODE PRINCIPAL_GL,
DCMM.ACTL_CRNCY_CODE MIS_CURRENCY,
0 INTEREST_RATE,
--0 COST_OF_FUNDS_RATE,
Case when DCMM.ACTL_CRNCY_CODE =''MUR'' then 1
else RATE end COST_OF_FUNDS_RATE,
DCMM.FUNC_CODE CONTRACT_STATUS,
5 RECORD_TYPE,
51 SOURCE_ID,
''NA'' BENEFICIARY,
DCMM.DC_REF_NUM TRADE_REF_NO,
T1.FORACID CURRENT_AC_NO,
''NA'' OPER_ACID,
DCMM.OPEN_VALUE DIS_AMT, '||
''''||G_Current_Business_Date ||''''||'FEED_DATE,
'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
DCMM.LCHG_TIME DATE_LAST_MODIFIED,
DCMM.RCRE_TIME DATE_CREATION
FROM
'||G_GAM_Table||'' || V_DB_Link || ' T1,
DCMM' || V_DB_Link || ' DCMM,
'||G_GAM_Table||'' || V_DB_Link || ' T2,
GAC' || V_DB_Link || ' ,
DCRM' || V_DB_Link || ' DCRM,
CMG' || V_DB_Link || ' CMG,
CEM' || V_DB_Link || ' CEM
WHERE
DCMM.OUR_PARTY_ACID = T1.ACID
AND T2.ACID = DCMM.DC_CONST_ACID
AND T1.ACID = GAC.ACID(+)
AND T1.CUST_ID = CMG.CUST_ID (+)
AND T1.CUST_ID = CEM.CUST_ID (+)
AND DCMM.OPEN_VALUE !=
DCMM.DC_BILL_UTIL_AMT+DCMM.DC_NOBILL_UTIL_AMT
AND EXISTS (SELECT ''X'' FROM SST' || V_DB_Link ||
' S WHERE S.SET_ID = ''ALL'' AND S.SOL_ID = T1.SOL_ID)
AND DCMM.DC_REG_TYPE IN (''IMPDC'')
AND DCMM.ENTITY_CRE_FLG = ''Y''
AND DCMM.DEL_FLG = ''N''
AND DCMM.CONT_LIAB_AMT != 0
AND DCMM.DC_REG_TYPE = DCRM.REG_TYPE
AND T1.CUST_ID is not null
AND DCMM.DATE_OPND <= '''||
G_Current_Business_Date ||'''
AND (DCMM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' OR CEM.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
OR CMG.LCHG_TIME >
'''||G_LastBusinessDateRun||''' OR DCRM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' )
UNION
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
DCMM.DC_REF_NUM CONTRACT_ID,
TRIM(T1.CUST_ID) CUSTOMER_ID,
T1.SOL_ID VISION_OUC,
case when T1.SOL_ID=''016'' then ''07''
when T1.SOL_ID=''17'' then ''08''
when T1.SOL_ID=''79'' then ''09''
when T1.SOL_ID=''18'' then
'||''''||P_Le_Book||'''' ||'
when T1.SOL_ID=''19'' then ''04''
when T1.SOL_ID=''89'' then ''06''
when T1.SOL_ID in (select substr(vision_ouc,9)
from ouc_codes where ouc_type=''40'') then
''02'' else ''NA''
end VISION_SBU,
T1.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
''DOCUMENTARY CREDIT'' DEAL_TYPE,
DCRM.REG_DESC DEAL_SUB_TYPE,
DCMM.DATE_OPND START_DATE,
NVL(DCMM.EXPIRY_DATE ,DCMM.DATE_OPND)
MATURITY_DATE,
TRUNC(DCMM.EXPIRY_DATE - SYSDATE)
DAYS_REMAINING_MAT,
TRUNC(DCMM.EXPIRY_DATE - DCMM.DATE_OPND)
DAYS_START_MAT,
T1.GL_SUB_HEAD_CODE PRINCIPAL_GL,
DCMM.ACTL_CRNCY_CODE MIS_CURRENCY,
0 INTEREST_RATE,
--0 COST_OF_FUNDS_RATE,
Case when DCMM.ACTL_CRNCY_CODE =''MUR'' then
1 else RATE end COST_OF_FUNDS_RATE,
DCMM.FUNC_CODE CONTRACT_STATUS,
5 RECORD_TYPE,
51 SOURCE_ID,
''NA'' BENEFICIARY,
DCMM.DC_REF_NUM TRADE_REF_NO,
T1.FORACID CURRENT_AC_NO,
''NA'' OPER_ACID,
DCMM.OPEN_VALUE DIS_AMT, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
DCMM.LCHG_TIME DATE_LAST_MODIFIED,
DCMM.RCRE_TIME DATE_CREATION
FROM
'||G_GAM_Table||'' || V_DB_Link || ' T1,
DCMM' || V_DB_Link || ' DCMM,
'||G_GAM_Table||'' || V_DB_Link || ' T2,
GAC' || V_DB_Link || ' ,
DCRM' || V_DB_Link || ' DCRM,
CMG' || V_DB_Link || ' CMG,
CEM' || V_DB_Link || ' CEM
WHERE
DCMM.OUR_PARTY_ACID = T1.ACID
AND T2.ACID (+) = DCMM.DC_CONST_ACID
AND T1.ACID = GAC.ACID(+)
AND T1.CUST_ID = CMG.CUST_ID (+)
AND T1.CUST_ID = CEM.CUST_ID (+)
AND EXISTS (SELECT ''X'' FROM SST' || V_DB_Link ||
' S WHERE S.SET_ID = ''ALL'' AND S.SOL_ID = T1.SOL_ID)
AND DCMM.DC_REG_TYPE NOT IN (''IMPDC'')
AND DCMM.ENTITY_CRE_FLG = ''Y''
AND DCMM.DEL_FLG = ''N''
AND DCMM.DATE_OPND <= '''||
G_Current_Business_Date ||'''
AND DCMM.DC_REG_TYPE = DCRM.REG_TYPE
AND T1.CUST_ID is not null
AND (DCMM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' OR DCRM.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
OR CEM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' OR CMG.LCHG_TIME >
'''||G_LastBusinessDateRun||''') ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/DCMM/DCRM/CMG
Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACTS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getcontractLCStgData;

/*#######################################################################
##################################################
Name : getcontractBGStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CONTRACTS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getcontractBGStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getcontractBGStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'CONTRACTS_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CONTRACTS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CONTRACTS_FEED_STG


population......');

BEGIN

writeLogInfo('Insert Into CONTRACTS_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,CUSTOMER_ID,
VISION_OUC,VISION_SBU,
ACCOUNT_OFFICER,DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
MATURITY_DATE,DAYS_REMAINING_MAT,
DAYS_START_MAT,PRINCIPAL_GL,
MIS_CURRENCY,INTEREST_RATE,
COST_OF_FUNDS_RATE,CONTRACT_STATUS,
RECORD_TYPE,SOURCE_ID,
BENEFICIARY,TRADE_REF_NO,
CURRENT_AC_NO,OPER_ACID,
DIS_AMT,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
BGM.BG_SRL_NUM CONTRACT_ID,
nvl(TRIM(T1.CUST_ID),bgm.cust_id) CUSTOMER_ID,
T1.SOL_ID VISION_OUC,
case when T1.SOL_ID=''016'' then ''07''
when T1.SOL_ID=''17'' then ''08''
when T1.SOL_ID=''79'' then ''09''
when T1.SOL_ID=''18'' then '||''''||P_Le_Book||'''' ||'
when T1.SOL_ID=''19'' then ''04''
when T1.SOL_ID=''89'' then ''06''
when T1.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
T1.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
''BANK GUARANTEE'' DEAL_TYPE,
BGP.BG_TYPE_DESC DEAL_SUB_TYPE,
BGM.ISSUE_DATE START_DATE,
NVL(BGM.BG_EXPIRY_DATE,BGM.ISSUE_DATE)
MATURITY_DATE,
TRUNC(BGM.BG_EXPIRY_DATE - SYSDATE)
DAYS_REMAINING_MAT,
TRUNC(BGM.BG_EXPIRY_DATE - BGM.EFFECTIVE_DATE)
DAYS_START_MAT,
T2.GL_SUB_HEAD_CODE PRINCIPAL_GL,
BGM.CRNCY_CODE MIS_CURRENCY,
0 INTEREST_RATE,
--0 COST_OF_FUNDS_RATE,
case when BGM.CRNCY_CODE =''MUR'' then 1 else
RATE end COST_OF_FUNDS_RATE,
BGM.BG_STATUS CONTRACT_STATUS,
5 RECORD_TYPE,
52 SOURCE_ID,
BGM.BENEFICIARY_NAME BENEFICIARY,
BGM.BG_SRL_NUM TRADE_REF_NO,
T1.FORACID CURRENT_AC_NO,
TRIM(BGM.OPER_ACID) OPER_ACID,
BG_AMT DIS_AMT, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
BGM.LCHG_TIME DATE_LAST_MODIFIED,
BGM.RCRE_TIME DATE_CREATION
FROM
BGM' || V_DB_Link || ' BGM ,
'||G_GAM_Table||'' || V_DB_Link || ' T1,
'||G_GAM_Table||'' || V_DB_Link || ' T2,
GAC' || V_DB_Link || ' ,
BGP' || V_DB_Link || ' BGP,
CMG' || V_DB_Link || ' CMG,
CEM' || V_DB_Link || ' CEM
WHERE
T1.ACID = BGM.OPER_ACID
AND BGM.BG_TYPE = BGP.BG_TYPE
AND T1.ACID = GAC.ACID(+)
AND T2.ACID = BGM.CONT_LIAB_CONTRA_ACID
AND T1.CUST_ID = CMG.CUST_ID (+)
AND T1.CUST_ID = CEM.CUST_ID (+)
AND T1.SCHM_TYPE(+) != ''TDA''
AND BGP.DEL_FLG =''N''
AND (BGM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' OR CMG.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
OR CEM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' OR BGP.LCHG_TIME >
'''||G_LastBusinessDateRun||''' ) ');
EXECUTE IMMEDIATE ('Insert Into CONTRACTS_FEED_STG (
COUNTRY,LE_BOOK,
CONTRACT_ID,CUSTOMER_ID,
VISION_OUC,VISION_SBU,
ACCOUNT_OFFICER,DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
MATURITY_DATE,DAYS_REMAINING_MAT,
DAYS_START_MAT,PRINCIPAL_GL,
MIS_CURRENCY,INTEREST_RATE,
COST_OF_FUNDS_RATE,CONTRACT_STATUS,
RECORD_TYPE,SOURCE_ID,
BENEFICIARY,TRADE_REF_NO,
CURRENT_AC_NO,OPER_ACID,
DIS_AMT,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
BGM.BG_SRL_NUM CONTRACT_ID,
nvl(TRIM(T1.CUST_ID),bgm.cust_id) CUSTOMER_ID,
T1.SOL_ID VISION_OUC,
case when T1.SOL_ID=''016'' then ''07''
when T1.SOL_ID=''17'' then ''08''
when T1.SOL_ID=''79'' then ''09''
when T1.SOL_ID=''18'' then '||''''||P_Le_Book||'''' ||'
when T1.SOL_ID=''19'' then ''04''
when T1.SOL_ID=''89'' then ''06''
when T1.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
T1.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
''BANK GUARANTEE'' DEAL_TYPE,
BGP.BG_TYPE_DESC DEAL_SUB_TYPE,
BGM.ISSUE_DATE START_DATE,
NVL(BGM.BG_EXPIRY_DATE,BGM.ISSUE_DATE)
MATURITY_DATE,
TRUNC(BGM.BG_EXPIRY_DATE - SYSDATE)
DAYS_REMAINING_MAT,
TRUNC(BGM.BG_EXPIRY_DATE - BGM.EFFECTIVE_DATE)
DAYS_START_MAT,
T2.GL_SUB_HEAD_CODE PRINCIPAL_GL,
BGM.CRNCY_CODE MIS_CURRENCY,
0 INTEREST_RATE,
--0 COST_OF_FUNDS_RATE,
case when BGM.CRNCY_CODE =''MUR'' then 1 else
RATE end COST_OF_FUNDS_RATE,
BGM.BG_STATUS CONTRACT_STATUS,
5 RECORD_TYPE,
52 SOURCE_ID,
BGM.BENEFICIARY_NAME BENEFICIARY,
BGM.BG_SRL_NUM TRADE_REF_NO,
T1.FORACID CURRENT_AC_NO,
TRIM(BGM.OPER_ACID) OPER_ACID,
BG_AMT DIS_AMT, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
BGM.LCHG_TIME DATE_LAST_MODIFIED,
BGM.RCRE_TIME DATE_CREATION
FROM
BGM' || V_DB_Link || ' BGM ,
'||G_GAM_Table||'' || V_DB_Link || ' T1,
'||G_GAM_Table||'' || V_DB_Link || ' T2,
GAC' || V_DB_Link || ' ,
BGP' || V_DB_Link || ' BGP,
CMG' || V_DB_Link || ' CMG,
CEM' || V_DB_Link || ' CEM
WHERE
T1.ACID = BGM.OPER_ACID
AND BGM.BG_TYPE = BGP.BG_TYPE
AND T1.ACID = GAC.ACID(+)
AND T2.ACID = BGM.CONT_LIAB_CONTRA_ACID
AND T1.CUST_ID = CMG.CUST_ID (+)
AND T1.CUST_ID = CEM.CUST_ID (+)
AND T1.SCHM_TYPE(+) != ''TDA''
AND BGP.DEL_FLG =''N''
AND (BGM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' OR CMG.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
OR CEM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' OR BGP.LCHG_TIME >
'''||G_LastBusinessDateRun||''' ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables BGM/GAM/BGP/CMG
Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACTS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;
updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getcontractBGStgData;

/*#######################################################################
##################################################
Name : getcontractBillsStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CONTRACTS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getcontractBillsStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getcontractBillsStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'CONTRACTS_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CONTRACTS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CONTRACTS_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO CONTRACTS_FEED_STG (


COUNTRY, LE_BOOK,
CONTRACT_ID,CUSTOMER_ID,
VISION_OUC,VISION_SBU,
ACCOUNT_OFFICER,DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
MATURITY_DATE,DAYS_REMAINING_MAT,
DAYS_START_MAT,PRINCIPAL_GL,
MIS_CURRENCY,INTEREST_RATE,
COST_OF_FUNDS_RATE,CONTRACT_STATUS,
RECORD_TYPE,SOURCE_ID,
BENEFICIARY,TRADE_REF_NO,
CURRENT_AC_NO,OPER_ACID,
DIS_AMT,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION,
BILL_CNTRY_CODE, BILL_IND_CODE_1,
BILL_IND_CODE_2,BILL_IND_CODE_3)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
FBM.BILL_ID CONTRACT_ID,
TRIM(T1.CUST_ID) CUSTOMER_ID,
T1.SOL_ID VISION_OUC,
case when T1.SOL_ID=''016'' then ''07''
when T1.SOL_ID=''17'' then ''08''
when T1.SOL_ID=''79'' then ''09''
when T1.SOL_ID=''18'' then '||''''||P_Le_Book||'''' ||'
when T1.SOL_ID=''19'' then ''04''
when T1.SOL_ID=''89'' then ''06''
when T1.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
T1.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
''BILLS'' DEAL_TYPE,
FBR.REG_TYPE_DESC DEAL_SUB_TYPE,
FBM.BILL_DATE START_DATE,
NVL(FBM.DUE_DATE,FBM.BILL_DATE)
MATURITY_DATE,
TRUNC(FBM.DUE_DATE - SYSDATE) AS
DAYS_REMAINING_MAT,
TRUNC(FBM.DUE_DATE - FBM.BILL_DATE) AS
DAYS_START_MAT,
NVL(T2.GL_SUB_HEAD_CODE,''0'') PRINCIPAL_GL,
FBM.BILL_CRNCY_CODE MIS_CURRENCY,
0 INTEREST_RATE,
--0 COST_OF_FUNDS_RATE,
case when BILL_CRNCY_CODE =''MUR'' then 1 else
NOTL_CONV_RATE end COST_OF_FUNDS_RATE,
FBM.BILL_STAT CONTRACT_STATUS,
5 RECORD_TYPE,
53 SOURCE_ID,
''NA'' BENEFICIARY,
FBM.BILL_ID TRADE_REF_NO,
T1.FORACID CURRENT_AC_NO,
''NA'' OPER_ACID,
FBM.BILL_AMT DIS_AMT, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
FBM.LCHG_TIME DATE_LAST_MODIFIED,
FBM.RCRE_TIME
DATE_CREATION,FBM.BILL_CNTRY_CODE,
TRIM(FBM.FREE_code_1),TRIM(FBM.FREE_code_3)
,TRIM(FBM.FREE_code_3)
FROM
'||G_GAM_Table||'' || V_DB_Link || ' T1,
FBM' || V_DB_Link || ' FBM,
'||G_GAM_Table||'' || V_DB_Link || ' T2,
GAC' || V_DB_Link || ' GAC,
FBR' || V_DB_Link || ' FBR,
FCP' || V_DB_Link || ' FCP,
CMG' || V_DB_Link || ' CMG,
CEM' || V_DB_Link || ' CEM
WHERE
CASE When FBM.BP_ACID is null Then
FBM.OPER_CHARGE_ACID Else FBM.BP_ACID End =T1.ACID
--AND FBM.CONST_LIAB_ACID = T2.ACID (+)
AND T1.ACID = GAC.ACID(+)
AND T1.CUST_ID = CMG.CUST_ID (+)
AND T1.CUST_ID = CEM.CUST_ID (+)
AND FBM.REG_TYPE IN (''IFBCD'')
AND FBM.REG_TYPE = FCP.REG_TYPE
And FBM.REG_SUB_TYPE = FCP.REG_SUB_TYPE
And FBM.BILL_CRNCY_CODE = FCP.REG_CRNCY_CODE
AND FBM.sol_id = t2.sol_id
And FCP.DC_ACCPT_CUST_LIAB_BACID = t2.bacid
AND FBM.REG_TYPE = FBR.REG_TYPE
AND FBM.DEL_FLG = ''N''
AND FBM.ENTITY_CRE_FLG = ''Y''
AND (FBM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' Or FBR.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
Or CEM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' Or CMG.LCHG_TIME >
'''||G_LastBusinessDateRun||''' )
UNION
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
FBM.BILL_ID CONTRACT_ID,
TRIM(T1.CUST_ID) CUSTOMER_ID,
T1.SOL_ID VISION_OUC,
case when T1.SOL_ID=''016'' then ''07''
when T1.SOL_ID=''17'' then ''08''
when T1.SOL_ID=''79'' then ''09''
when T1.SOL_ID=''18'' then '||''''||P_Le_Book||'''' ||'
when T1.SOL_ID=''19'' then ''04''
when T1.SOL_ID=''89'' then ''06''
when T1.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
T1.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
''BILLS'' DEAL_TYPE,
FBR.REG_TYPE_DESC DEAL_SUB_TYPE,
FBM.BILL_DATE START_DATE,
NVL(FBM.DUE_DATE,FBM.BILL_DATE)
MATURITY_DATE,
TRUNC(FBM.DUE_DATE - SYSDATE) AS
DAYS_REMAINING_MAT,
TRUNC(FBM.DUE_DATE - FBM.BILL_DATE) AS
DAYS_START_MAT,
NVL(T1.GL_SUB_HEAD_CODE,''0'') PRINCIPAL_GL,
FBM.BILL_CRNCY_CODE MIS_CURRENCY,
0 INTEREST_RATE,
--0 COST_OF_FUNDS_RATE,
case when BILL_CRNCY_CODE =''MUR'' then 1 else
NOTL_CONV_RATE end COST_OF_FUNDS_RATE,
FBM.BILL_STAT CONTRACT_STATUS,
5 RECORD_TYPE,
53 SOURCE_ID,
''NA'' BENEFICIARY,
FBM.BILL_ID TRADE_REF_NO,
T1.FORACID CURRENT_AC_NO,
''NA'' OPER_ACID,
FBM.BILL_AMT DIS_AMT, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
FBM.LCHG_TIME DATE_LAST_MODIFIED,
FBM.RCRE_TIME DATE_CREATION,FBM.BILL_CNTRY_CODE,
TRIM(FBM.FREE_code_1),TRIM(FBM.FREE_code_3)
,TRIM(FBM.FREE_code_3)
FROM
'||G_GAM_Table||'' || V_DB_Link || ' T1,
FBM' || V_DB_Link || ' FBM,
'||G_GAM_Table||'' || V_DB_Link || ' T2,
GAC' || V_DB_Link || ' ,
FBR' || V_DB_Link || ' FBR,
CMG' || V_DB_Link || ' CMG,
CEM' || V_DB_Link || ' CEM
WHERE
CASE When FBM.BP_ACID is null Then
FBM.OPER_CHARGE_ACID Else FBM.BP_ACID End =T1.ACID
AND T1.ACID = GAC.ACID(+)
AND FBM.CONST_LIAB_ACID = T2.ACID (+)
AND T1.CUST_ID = CMG.CUST_ID (+)
AND T1.CUST_ID = CEM.CUST_ID (+)
AND FBM.REG_TYPE NOT IN (''IFBCD'')
AND FBM.REG_TYPE = FBR.REG_TYPE
AND FBM.DEL_FLG = ''N''
AND FBM.ENTITY_CRE_FLG = ''Y''
AND (FBM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' Or FBR.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
Or CMG.LCHG_TIME >
'''||G_LastBusinessDateRun||''' Or CEM.LCHG_TIME >
'''||G_LastBusinessDateRun||''')
UNION
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
FBM.BILL_ID CONTRACT_ID,
TRIM(FBM.PARTY_CODE) CUSTOMER_ID,
T2.SOL_ID VISION_OUC,
case when T2.SOL_ID=''016'' then ''07''
when T2.SOL_ID=''17'' then ''08''
when T2.SOL_ID=''79'' then ''09''
when T2.SOL_ID=''18'' then '||''''||P_Le_Book||''''
||'
when T2.SOL_ID=''19'' then ''04''
when T2.SOL_ID=''89'' then ''06''
when T2.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
T2.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
''BILLS'' DEAL_TYPE,
FBR.REG_TYPE_DESC DEAL_SUB_TYPE,
FBM.BILL_DATE START_DATE,
NVL(FBM.DUE_DATE,FBM.BILL_DATE)
MATURITY_DATE,
TRUNC(FBM.DUE_DATE - SYSDATE) AS
DAYS_REMAINING_MAT,
TRUNC(FBM.DUE_DATE - FBM.BILL_DATE) AS
DAYS_START_MAT,
NVL(T2.GL_SUB_HEAD_CODE,''0'') PRINCIPAL_GL,
FBM.BILL_CRNCY_CODE MIS_CURRENCY,
0 INTEREST_RATE,
--0 COST_OF_FUNDS_RATE,
case when BILL_CRNCY_CODE =''MUR'' then 1 else
NOTL_CONV_RATE end COST_OF_FUNDS_RATE,
FBM.BILL_STAT CONTRACT_STATUS,
5 RECORD_TYPE,
53 SOURCE_ID,
''NA'' BENEFICIARY,
FBM.BILL_ID TRADE_REF_NO,
T2.FORACID CURRENT_AC_NO,
''NA'' OPER_ACID,
FBM.BILL_AMT DIS_AMT, '||
''''||G_Current_Business_Date ||''''||'FEED_DATE,
'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
FBM.LCHG_TIME DATE_LAST_MODIFIED,
FBM.RCRE_TIME DATE_CREATION
,FBM.BILL_CNTRY_CODE ,
TRIM(FBM.FREE_code_1),TRIM(FBM.FREE_code_3)
,TRIM(FBM.FREE_code_3)
FROM
FBM@FINACLEPROD FBM,
GAM@FINACLEPROD T2,
GAC@FINACLEPROD GAC,
FBR@FINACLEPROD FBR,
FCP@FINACLEPROD FCP,
CMG@FINACLEPROD CMG,
CEM@FINACLEPROD CEM
WHERE
T2.ACID = GAC.ACID(+)
AND T2.CUST_ID = CMG.CUST_ID (+)
AND T2.CUST_ID = CEM.CUST_ID (+)
AND FBM.REG_TYPE IN (''IFBCD'',''IFBCA'')
AND FBM.REG_TYPE = FCP.REG_TYPE
And FBM.REG_SUB_TYPE = FCP.REG_SUB_TYPE
And FBM.BILL_CRNCY_CODE = FCP.REG_CRNCY_CODE
AND FBM.sol_id = t2.sol_id
And FCP.DC_ACCPT_CUST_LIAB_BACID = t2.bacid
AND FBM.REG_TYPE = FBR.REG_TYPE
AND FBM.BP_ACID is null AND FBM.OPER_CHARGE_ACID is null
AND FBM.DEL_FLG = ''N''
AND FBM.ENTITY_CRE_FLG = ''Y''
AND (FBM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' Or FBR.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
Or CMG.LCHG_TIME >
'''||G_LastBusinessDateRun||''' Or CEM.LCHG_TIME >
'''||G_LastBusinessDateRun||''') ');

EXECUTE IMMEDIATE ('INSERT INTO CONTRACTS_FEED_STG (


COUNTRY, LE_BOOK,
CONTRACT_ID,CUSTOMER_ID,
VISION_OUC,VISION_SBU,
ACCOUNT_OFFICER,DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
MATURITY_DATE,DAYS_REMAINING_MAT,
DAYS_START_MAT,PRINCIPAL_GL,
MIS_CURRENCY,INTEREST_RATE,
COST_OF_FUNDS_RATE,CONTRACT_STATUS,
RECORD_TYPE,SOURCE_ID,
BENEFICIARY,TRADE_REF_NO,
CURRENT_AC_NO,OPER_ACID,
DIS_AMT,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION,
BILL_CNTRY_CODE, BILL_IND_CODE_1,
BILL_IND_CODE_2,BILL_IND_CODE_3)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
FBM.BILL_ID CONTRACT_ID,
TRIM(T1.CUST_ID) CUSTOMER_ID,
T1.SOL_ID VISION_OUC,
case when T1.SOL_ID=''016'' then ''07''
when T1.SOL_ID=''17'' then ''08''
when T1.SOL_ID=''79'' then ''09''
when T1.SOL_ID=''18'' then '||''''||P_Le_Book||'''' ||'
when T1.SOL_ID=''19'' then ''04''
when T1.SOL_ID=''89'' then ''06''
when T1.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
T1.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
''BILLS'' DEAL_TYPE,
FBR.REG_TYPE_DESC DEAL_SUB_TYPE,
FBM.BILL_DATE START_DATE,
NVL(FBM.DUE_DATE,FBM.BILL_DATE)
MATURITY_DATE,
TRUNC(FBM.DUE_DATE - SYSDATE) AS
DAYS_REMAINING_MAT,
TRUNC(FBM.DUE_DATE - FBM.BILL_DATE) AS
DAYS_START_MAT,
NVL(T2.GL_SUB_HEAD_CODE,''0'') PRINCIPAL_GL,
FBM.BILL_CRNCY_CODE MIS_CURRENCY,
0 INTEREST_RATE,
--0 COST_OF_FUNDS_RATE,
case when BILL_CRNCY_CODE =''MUR'' then 1 else
NOTL_CONV_RATE end COST_OF_FUNDS_RATE,
FBM.BILL_STAT CONTRACT_STATUS,
5 RECORD_TYPE,
53 SOURCE_ID,
''NA'' BENEFICIARY,
FBM.BILL_ID TRADE_REF_NO,
T1.FORACID CURRENT_AC_NO,
''NA'' OPER_ACID,
FBM.BILL_AMT DIS_AMT, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
FBM.LCHG_TIME DATE_LAST_MODIFIED,
FBM.RCRE_TIME
DATE_CREATION,FBM.BILL_CNTRY_CODE ,
TRIM(FBM.FREE_code_1),TRIM(FBM.FREE_code_3)
,TRIM(FBM.FREE_code_3)
FROM
'||G_GAM_Table||'' || V_DB_Link || ' T1,
FBM' || V_DB_Link || ' FBM,
'||G_GAM_Table||'' || V_DB_Link || ' T2,
GAC' || V_DB_Link || ' GAC,
FBR' || V_DB_Link || ' FBR,
FCP' || V_DB_Link || ' FCP,
CMG' || V_DB_Link || ' CMG,
CEM' || V_DB_Link || ' CEM
WHERE
CASE When FBM.BP_ACID is null Then
FBM.OPER_CHARGE_ACID Else FBM.BP_ACID End =T1.ACID
--AND FBM.CONST_LIAB_ACID = T2.ACID (+)
AND T1.ACID = GAC.ACID(+)
AND T1.CUST_ID = CMG.CUST_ID (+)
AND T1.CUST_ID = CEM.CUST_ID (+)
AND FBM.REG_TYPE IN (''IFBCD'')
AND FBM.REG_TYPE = FCP.REG_TYPE
And FBM.REG_SUB_TYPE = FCP.REG_SUB_TYPE
And FBM.BILL_CRNCY_CODE = FCP.REG_CRNCY_CODE
AND FBM.sol_id = t2.sol_id
And FCP.DC_ACCPT_CUST_LIAB_BACID = t2.bacid
AND FBM.REG_TYPE = FBR.REG_TYPE
AND FBM.DEL_FLG = ''N''
AND FBM.ENTITY_CRE_FLG = ''Y''
AND (FBM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' Or FBR.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
Or CEM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' Or CMG.LCHG_TIME >
'''||G_LastBusinessDateRun||''' )
UNION
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
FBM.BILL_ID CONTRACT_ID,
TRIM(T1.CUST_ID) CUSTOMER_ID,
T1.SOL_ID VISION_OUC,
case when T1.SOL_ID=''016'' then ''07''
when T1.SOL_ID=''17'' then ''08''
when T1.SOL_ID=''79'' then ''09''
when T1.SOL_ID=''18'' then '||''''||P_Le_Book||'''' ||'
when T1.SOL_ID=''19'' then ''04''
when T1.SOL_ID=''89'' then ''06''
when T1.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
T1.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
''BILLS'' DEAL_TYPE,
FBR.REG_TYPE_DESC DEAL_SUB_TYPE,
FBM.BILL_DATE START_DATE,
NVL(FBM.DUE_DATE,FBM.BILL_DATE)
MATURITY_DATE,
TRUNC(FBM.DUE_DATE - SYSDATE) AS
DAYS_REMAINING_MAT,
TRUNC(FBM.DUE_DATE - FBM.BILL_DATE) AS
DAYS_START_MAT,
NVL(T1.GL_SUB_HEAD_CODE,''0'') PRINCIPAL_GL,
FBM.BILL_CRNCY_CODE MIS_CURRENCY,
0 INTEREST_RATE,
--0 COST_OF_FUNDS_RATE,
case when BILL_CRNCY_CODE =''MUR'' then 1 else
NOTL_CONV_RATE end COST_OF_FUNDS_RATE,
FBM.BILL_STAT CONTRACT_STATUS,
5 RECORD_TYPE,
53 SOURCE_ID,
''NA'' BENEFICIARY,
FBM.BILL_ID TRADE_REF_NO,
T1.FORACID CURRENT_AC_NO,
''NA'' OPER_ACID,
FBM.BILL_AMT DIS_AMT, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
FBM.LCHG_TIME DATE_LAST_MODIFIED,
FBM.RCRE_TIME DATE_CREATION,FBM.BILL_CNTRY_CODE
,
TRIM(FBM.FREE_code_1),TRIM(FBM.FREE_code_3)
,TRIM(FBM.FREE_code_3)
FROM
'||G_GAM_Table||'' || V_DB_Link || ' T1,
FBM' || V_DB_Link || ' FBM,
'||G_GAM_Table||'' || V_DB_Link || ' T2,
GAC' || V_DB_Link || ' ,
FBR' || V_DB_Link || ' FBR,
CMG' || V_DB_Link || ' CMG,
CEM' || V_DB_Link || ' CEM
WHERE
CASE When FBM.BP_ACID is null Then
FBM.OPER_CHARGE_ACID Else FBM.BP_ACID End =T1.ACID
AND T1.ACID = GAC.ACID(+)
AND FBM.CONST_LIAB_ACID = T2.ACID (+)
AND T1.CUST_ID = CMG.CUST_ID (+)
AND T1.CUST_ID = CEM.CUST_ID (+)
AND FBM.REG_TYPE NOT IN (''IFBCD'')
AND FBM.REG_TYPE = FBR.REG_TYPE
AND FBM.DEL_FLG = ''N''
AND FBM.ENTITY_CRE_FLG = ''Y''
AND (FBM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' Or FBR.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
Or CMG.LCHG_TIME >
'''||G_LastBusinessDateRun||''' Or CEM.LCHG_TIME >
'''||G_LastBusinessDateRun||''')
UNION
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
FBM.BILL_ID CONTRACT_ID,
TRIM(FBM.PARTY_CODE) CUSTOMER_ID,
T2.SOL_ID VISION_OUC,
case when T2.SOL_ID=''016'' then ''07''
when T2.SOL_ID=''17'' then ''08''
when T2.SOL_ID=''79'' then ''09''
when T2.SOL_ID=''18'' then '||''''||P_Le_Book||''''
||'
when T2.SOL_ID=''19'' then ''04''
when T2.SOL_ID=''89'' then ''06''
when T2.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
T2.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
''BILLS'' DEAL_TYPE,
FBR.REG_TYPE_DESC DEAL_SUB_TYPE,
FBM.BILL_DATE START_DATE,
NVL(FBM.DUE_DATE,FBM.BILL_DATE)
MATURITY_DATE,
TRUNC(FBM.DUE_DATE - SYSDATE) AS
DAYS_REMAINING_MAT,
TRUNC(FBM.DUE_DATE - FBM.BILL_DATE) AS
DAYS_START_MAT,
NVL(T2.GL_SUB_HEAD_CODE,''0'') PRINCIPAL_GL,
FBM.BILL_CRNCY_CODE MIS_CURRENCY,
0 INTEREST_RATE,
--0 COST_OF_FUNDS_RATE,
case when BILL_CRNCY_CODE =''MUR'' then 1 else
NOTL_CONV_RATE end COST_OF_FUNDS_RATE,
FBM.BILL_STAT CONTRACT_STATUS,
5 RECORD_TYPE,
53 SOURCE_ID,
''NA'' BENEFICIARY,
FBM.BILL_ID TRADE_REF_NO,
T2.FORACID CURRENT_AC_NO,
''NA'' OPER_ACID,
FBM.BILL_AMT DIS_AMT, '||
''''||G_Current_Business_Date ||''''||'FEED_DATE,
'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
FBM.LCHG_TIME DATE_LAST_MODIFIED,
FBM.RCRE_TIME DATE_CREATION
,FBM.BILL_CNTRY_CODE ,
TRIM(FBM.FREE_code_1),TRIM(FBM.FREE_code_3)
,TRIM(FBM.FREE_code_3)
FROM
FBM@FINACLEPROD FBM,
GAM@FINACLEPROD T2,
GAC@FINACLEPROD GAC,
FBR@FINACLEPROD FBR,
FCP@FINACLEPROD FCP,
CMG@FINACLEPROD CMG,
CEM@FINACLEPROD CEM
WHERE
T2.ACID = GAC.ACID(+)
AND T2.CUST_ID = CMG.CUST_ID (+)
AND T2.CUST_ID = CEM.CUST_ID (+)
AND FBM.REG_TYPE IN (''IFBCD'',''IFBCA'')
AND FBM.REG_TYPE = FCP.REG_TYPE
And FBM.REG_SUB_TYPE = FCP.REG_SUB_TYPE
And FBM.BILL_CRNCY_CODE = FCP.REG_CRNCY_CODE
AND FBM.sol_id = t2.sol_id
And FCP.DC_ACCPT_CUST_LIAB_BACID = t2.bacid
AND FBM.REG_TYPE = FBR.REG_TYPE
AND FBM.BP_ACID is null AND FBM.OPER_CHARGE_ACID is null
AND FBM.DEL_FLG = ''N''
AND FBM.ENTITY_CRE_FLG = ''Y''
AND (FBM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' Or FBR.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
Or CMG.LCHG_TIME >
'''||G_LastBusinessDateRun||''' Or CEM.LCHG_TIME >
'''||G_LastBusinessDateRun||''') ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/FBM/FBR/CMG
Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACTS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getcontractBillsStgData;

/*#######################################################################
##################################################
Name : getcontractTDStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CONTRACTS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getcontractTDStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getcontractTDStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'CONTRACTS_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CONTRACTS_FEED_STG !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CONTRACTS_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO CONTRACTS_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,CUSTOMER_ID,
VISION_OUC,VISION_SBU,
ACCOUNT_OFFICER,DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
MATURITY_DATE,DAYS_REMAINING_MAT,
DAYS_START_MAT,PRINCIPAL_GL,
MIS_CURRENCY,INTEREST_RATE,
COST_OF_FUNDS_RATE,CONTRACT_STATUS,
RECORD_TYPE,SOURCE_ID,
BENEFICIARY,TRADE_REF_NO,
CURRENT_AC_NO,OPER_ACID,
DIS_AMT,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
GAM.FORACID CONTRACT_ID,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
GAM.SOL_ID VISION_OUC,
case when GAM.SOL_ID=''16'' then ''07''
when GAM.SOL_ID=''17'' then ''08''
when GAM.SOL_ID=''79'' then ''09''
when GAM.SOL_ID=''18'' then '||''''||P_Le_Book||'''' ||'
when GAM.SOL_ID=''19'' then ''04''
when GAM.SOL_ID=''89'' then ''06''
when GAM.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
GAM.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
''TERM DEPOSIT'' DEAL_TYPE,
GSP.SCHM_DESC DEAL_SUB_TYPE,
TAM.OPEN_EFFECTIVE_DATE START_DATE,
NVL(TAM.MATURITY_DATE,TAM.OPEN_EFFECTIVE_DATE)
MATURITY_DATE,
TRUNC(TAM.MATURITY_DATE - SYSDATE)
DAYS_REMAINING_MAT,
TRUNC(TAM.MATURITY_DATE -
TAM.OPEN_EFFECTIVE_DATE) DAYS_START_MAT,
GAM.GL_SUB_HEAD_CODE PRINCIPAL_GL,
GAM.ACCT_CRNCY_CODE MIS_CURRENCY,
nvl(t1.interest_rate_cr,EIT.INTEREST_RATE)
INTEREST_RATE,
0 COST_OF_FUNDS_RATE,
TAM.DEPOSIT_STATUS CONTRACT_STATUS,
5 RECORD_TYPE,
6 SOURCE_ID,
''NA'' BENEFICIARY,
''NA'' TRADE_REF_NO,
/*NVL(GAM1.FORACID,GAM2.FORACID)
CURRENT_AC_NO,*/
GAM1.FORACID CURRENT_AC_NO,
TRIM(TAM.LINK_OPER_ACCOUNT) OPER_ACID,
TAM.DEPOSIT_AMOUNT DIS_AMT, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
TAM.LCHG_TIME DATE_LAST_MODIFIED,
TAM.RCRE_TIME DATE_CREATION
FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
/*GAC' || V_DB_Link || ' GAC, */
TAM' || V_DB_Link || ' TAM,
GSP' || V_DB_Link || ' GSP,
CMG' || V_DB_Link || ' CMG,
EIT' || V_DB_Link || ' EIT,
'||G_GAM_Table||'' || V_DB_Link || ' GAM1,
CEM' || V_DB_Link || ' CEM
TEMP_RATES T1
WHERE
GAM.ACID = TAM.ACID
/*AND GAM.ACID = GAC.ACID(+) */
AND GAM.ACID = EIT.ENTITY_ID (+)
AND GAM.CUST_ID = CMG.CUST_ID(+)
AND GAM.CUST_ID = CEM.CUST_ID (+)
AND GAM.SCHM_TYPE = ''TDA''
AND GAM.FORACID = T1.ACCOUNT_NO(+)
AND GAM.DEL_FLG = ''N''
AND GAM.ENTITY_CRE_FLG = ''Y''
AND GAM.SCHM_CODE = GSP.SCHM_CODE(+)
AND TAM.REPAYMENT_ACID = GAM1.ACID(+)
AND (TAM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' Or GSP.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
Or CMG.LCHG_TIME >
'''||G_LastBusinessDateRun||''' Or CEM.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
Or GAM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' ) ');

EXECUTE IMMEDIATE ('INSERT INTO CONTRACTS_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,CUSTOMER_ID,
VISION_OUC,VISION_SBU,
ACCOUNT_OFFICER,DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
MATURITY_DATE,DAYS_REMAINING_MAT,
DAYS_START_MAT,PRINCIPAL_GL,
MIS_CURRENCY,INTEREST_RATE,
COST_OF_FUNDS_RATE,CONTRACT_STATUS,
RECORD_TYPE,SOURCE_ID,
BENEFICIARY,TRADE_REF_NO,
CURRENT_AC_NO,OPER_ACID,
DIS_AMT,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
GAM.FORACID CONTRACT_ID,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
GAM.SOL_ID VISION_OUC,
case when GAM.SOL_ID=''16'' then ''07''
when GAM.SOL_ID=''17'' then ''08''
when GAM.SOL_ID=''79'' then ''09''
when GAM.SOL_ID=''18'' then '||''''||P_Le_Book||'''' ||'
when GAM.SOL_ID=''19'' then ''04''
when GAM.SOL_ID=''89'' then ''06''
when GAM.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
GAM.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
''TERM DEPOSIT'' DEAL_TYPE,
GSP.SCHM_DESC DEAL_SUB_TYPE,
TAM.OPEN_EFFECTIVE_DATE START_DATE,
NVL(TAM.MATURITY_DATE,TAM.OPEN_EFFECTIVE_DATE)
MATURITY_DATE,
TRUNC(TAM.MATURITY_DATE - SYSDATE)
DAYS_REMAINING_MAT,
TRUNC(TAM.MATURITY_DATE -
TAM.OPEN_EFFECTIVE_DATE) DAYS_START_MAT,
GAM.GL_SUB_HEAD_CODE PRINCIPAL_GL,
GAM.ACCT_CRNCY_CODE MIS_CURRENCY,
nvl(t1.interest_rate_cr,EIT.INTEREST_RATE)
INTEREST_RATE,
0 COST_OF_FUNDS_RATE,
TAM.DEPOSIT_STATUS CONTRACT_STATUS,
5 RECORD_TYPE,
6 SOURCE_ID,
''NA'' BENEFICIARY,
''NA'' TRADE_REF_NO,
GAM1.FORACID CURRENT_AC_NO,
TRIM(TAM.LINK_OPER_ACCOUNT) OPER_ACID,
TAM.DEPOSIT_AMOUNT DIS_AMT, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
TAM.LCHG_TIME DATE_LAST_MODIFIED,
TAM.RCRE_TIME DATE_CREATION
FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
/*GAC' || V_DB_Link || ' GAC,*/
TAM' || V_DB_Link || ' TAM,
GSP' || V_DB_Link || ' GSP,
CMG' || V_DB_Link || ' CMG,
EIT' || V_DB_Link || ' EIT,
'||G_GAM_Table||'' || V_DB_Link || ' GAM1,
CEM' || V_DB_Link || ' CEM,
TEMP_RATES T1
WHERE
GAM.ACID = TAM.ACID
/* AND GAM.ACID = GAC.ACID(+) */
AND GAM.ACID = EIT.ENTITY_ID (+)
AND GAM.CUST_ID = CMG.CUST_ID(+)
AND GAM.CUST_ID = CEM.CUST_ID (+)
AND GAM.SCHM_TYPE = ''TDA''
AND GAM.FORACID = T1.ACCOUNT_NO(+)
/*AND GAM.ACCT_CLS_FLG=''N''*/
AND GAM.DEL_FLG = ''N''
AND GAM.ENTITY_CRE_FLG = ''Y''
AND GAM.SCHM_CODE = GSP.SCHM_CODE(+)
AND TAM.REPAYMENT_ACID = GAM1.ACID(+)
AND (TAM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' Or GSP.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
Or CMG.LCHG_TIME >
'''||G_LastBusinessDateRun||''' Or CEM.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
Or GAM.LCHG_TIME >
'''||G_LastBusinessDateRun||''' ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

BEGIN

EXECUTE IMMEDIATE ('UPDATE


'||V_Schema_Name||'CONTRACTS_FEED_STG H1 SET CURRENT_AC_NO = (SELECT
T1.FORACID
FROM '||G_GAM_Table||'' || V_DB_Link || ' T1, TAM'
|| V_DB_Link || ' T2, '||G_GAM_Table||'' || V_DB_Link || ' T3 WHERE
T1.ACID = T2.REPAYMENT_ACID AND T2.ACID = T3.ACID AND T3.FORACID =
H1.CONTRACT_ID)
WHERE H1.CURRENT_AC_NO IS NULL');

COMMIT;

EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables
CONTRACTS_FEED_STG/GAM/TAM Does not exists/not accessiable !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Update CONTRACTS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables
GAM/TAM/GSP/CMG/EIT Does not exists/not accessiable !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACTS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getcontractTDStgData;
/*#######################################################################
##################################################
Name : getcontractTDSExttgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CONTRACTS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getcontractTDSExttgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getcontractTDSExttgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CONTRACTS_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO CONTRACTS_TDS_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,EFFECTIVE_DATE,
MATURITY_DATE,RENEWAL_TYPE,
DEPOSIT_AMOUNT,MATURITY_AMOUNT,
INTEREST_AMOUNT,TAX_AMOUNT,
FEED_DATE,PRODUCT,
RUN_STATUS,
DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT DISTINCT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Foracid CONTRACT_ID,
OPEN_EFFECTIVE_DATE EFFECTIVE_DATE,
MATURITY_DATE,RENEWAL_TYPE,
DEPOSIT_AMOUNT,MATURITY_AMOUNT,
INTEREST_AMOUNT,
TDS_AMT TAX_AMOUNT,
'||''''||G_Current_Business_Date
||''''||'FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
RHT.LCHG_TIME DATE_LAST_MODIFIED,
RHT.RCRE_TIME DATE_CREATION
FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
RHT' || V_DB_Link || ' RHT
WHERE
GAM.ACID = RHT.ACID
AND RHT.LCHG_TIME >
'||''''||G_LastBusinessDateRun||'''
AND RHT.LCHG_TIME <=
'||''''||G_Current_Business_Date||''' ');

EXECUTE IMMEDIATE ('INSERT INTO CONTRACTS_TDS_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,EFFECTIVE_DATE,
MATURITY_DATE,RENEWAL_TYPE,
DEPOSIT_AMOUNT,MATURITY_AMOUNT,
INTEREST_AMOUNT,TAX_AMOUNT,
FEED_DATE,PRODUCT,
RUN_STATUS,
DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT DISTINCT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Foracid CONTRACT_ID,
OPEN_EFFECTIVE_DATE EFFECTIVE_DATE,
MATURITY_DATE,RENEWAL_TYPE,
DEPOSIT_AMOUNT,MATURITY_AMOUNT,
INTEREST_AMOUNT,
TDS_AMT TAX_AMOUNT,
'||''''||G_Current_Business_Date
||''''||'FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
RHT.LCHG_TIME DATE_LAST_MODIFIED,
RHT.RCRE_TIME DATE_CREATION
FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
RHT' || V_DB_Link || ' RHT
WHERE
GAM.ACID = RHT.ACID
AND RHT.LCHG_TIME >
'||''''||G_LastBusinessDateRun||'''
AND RHT.LCHG_TIME <=
'||''''||G_Current_Business_Date||''' ');
G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/RHT Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACTS_TDS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getcontractTDSExttgData;

/*#######################################################################
##################################################
Name : getcontractLoansStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CONTRACTS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getcontractLoansStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getcontractLoansStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'CONTRACT_LOANS_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CONTRACT_LOANS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained from


Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CONTRACT_LOANS_FEED_STG


population......');

BEGIN

writeLogInfo('Insert Into CONTRACT_LOANS_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,EFFECTIVE_DATE,
LIMIT_TYPE,LIMIT_AMOUNT,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
GAM.FORACID CONTRACT_ID,
LTD.TRAN_DATE EFFECTIVE_DATE,
LTD.FLOW_ID LIMIT_TYPE,
LTD.FLOW_AMT LIMIT_AMOUNT,'||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM '||G_GAM_Table||'' || V_DB_Link || ' GAM ,
LTD' || V_DB_Link || '
WHERE GAM.ACID = LTD.ACID
AND LTD.FLOW_ID = ''DISBT''
AND LTD.DEL_FLG != ''Y''
AND GAM.ENTITY_CRE_FLG = ''Y''
AND GAM.SCHM_TYPE = ''LAA''
AND LTD.TRAN_DATE >
'||''''||G_LastBusinessDateRun||'''');

EXECUTE IMMEDIATE('Insert Into


CONTRACT_LOANS_FEED_STG (
COUNTRY,LE_BOOK,
CONTRACT_ID,EFFECTIVE_DATE,
LIMIT_TYPE,LIMIT_AMOUNT,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
GAM.FORACID CONTRACT_ID,
LTD.TRAN_DATE EFFECTIVE_DATE,
LTD.FLOW_ID LIMIT_TYPE,
LTD.FLOW_AMT LIMIT_AMOUNT,'||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM '||G_GAM_Table||'' || V_DB_Link || ' GAM ,
LTD' || V_DB_Link || '
WHERE GAM.ACID = LTD.ACID
AND LTD.FLOW_ID = ''DISBT''
AND LTD.DEL_FLG != ''Y''
AND GAM.ENTITY_CRE_FLG = ''Y''
AND GAM.SCHM_TYPE = ''LAA''
AND LTD.TRAN_DATE >
'||''''||G_LastBusinessDateRun||'''');

/* EXECUTE IMMEDIATE ('Insert Into CONTRACTS_LOANS_FEED_STG


(
COUNTRY,LE_BOOK,
CONTRACT_ID,SCHEDULE_DATE,
EMI_AMOUNT,DUE_AMOUNT,
DAYS_PAST_DUE,REPAYMENT_FREQUENCY,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
GAM.FORACID CONTRACT_ID,
LDT.DMD_EFF_DATE SCHEDULE_DATE,
LDT.EI_AMT EMI_AMOUNT,
LDT.DMD_AMT DUE_AMOUNT,
''0'' DAYS_PAST_DUE,
LDT.LD_FREQ_TYPE REPAYMENT_FREQUENCY, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM '||G_GAM_Table||'' || V_DB_Link || ' GAM ,
LDT' || V_DB_Link || '
WHERE GAM.ACID = LDT.ACID
AND LDT.DMD_FLOW_ID = ''PRDEM''
AND LDT.DEL_FLG = ''N''
AND LDT.LCHG_TIME >
'||''''||G_LastBusinessDateRun||''''); */

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/LDT Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACTS_LOANS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getcontractLoansStgData;
/*#######################################################################
##################################################
Name : getcontractODStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CONTRACTS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getcontractODStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getcontractODStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'CONTRACT_ODS_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CONTRACT_ODS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;
writeLogInfo('Beginning staging table CONTRACT_ODS_FEED_STG
population......');

BEGIN

writeLogInfo('INSERT INTO CONTRACT_ODS_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,OD_SEQUENCE_NUMBER,
OD_STATUS,LIMIT_SANC_DATE,
LIMIT_EXP_DATE,SANCTION_LIMIT,
SUPERCEDE_FLAG,SCHM_TYPE,
EVENT_TYPE,SOURCE_ID,
FEED_DATE,PRODUCT,
RUN_STATUS,SANCT_AUTH_CODE,
SECURITY_DESC,DATE_LAST_MODIFIED ,
DATE_CREATION,APPLICABLE_DATE)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
GAM.FORACID CONTRACT_ID,
LHT.SERIAL_NUM OD_SEQUENCE_NUMBER,
LHT.STATUS OD_STATUS,
LHT.LIM_SANCT_DATE LIMIT_SANC_DATE,
LHT.LIM_EXP_DATE LIMIT_EXP_DATE,
LHT.SANCT_LIM SANCTION_LIMIT,
LHT.SUPERCEDE_FLG SUPERCEDE_FLAG,
GAM.SCHM_TYPE SCHM_TYPE,
LHT.EVENT_TYPE EVENT_TYPE,
4 SOURCE_ID, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
LHT.SANCT_AUTH_CODE SANCT_AUTH_CODE,
LHT.DESC_OF_SECURITY SECURITY_DESC,
SYSDATE DATE_LAST_MODIFIED ,
SYSDATE DATE_CREATION,
LHT.APPLICABLE_DATE APPLICABLE_DATE
FROM GAM' || V_DB_Link || ' GAM,
LHT' || V_DB_Link || '
WHERE GAM.ACID = LHT.ACID
AND SCHM_TYPE IN(''CAA'',''ODA'',''SBA'')
AND LHT.ENTITY_CRE_FLG = ''Y''
AND LHT.DEL_FLG = ''N''
--AND LHT.LCHG_TIME >
'||''''||G_LastBusinessDateRun||'''
');

EXECUTE IMMEDIATE ('INSERT INTO CONTRACT_ODS_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,OD_SEQUENCE_NUMBER,
OD_STATUS,LIMIT_SANC_DATE,
LIMIT_EXP_DATE,SANCTION_LIMIT,
SUPERCEDE_FLAG,SCHM_TYPE,
EVENT_TYPE,SOURCE_ID,
FEED_DATE,PRODUCT,
RUN_STATUS,SANCT_AUTH_CODE,
SECURITY_DESC,DATE_LAST_MODIFIED ,
DATE_CREATION,APPLICABLE_DATE)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
GAM.FORACID CONTRACT_ID,
LHT.SERIAL_NUM OD_SEQUENCE_NUMBER,
LHT.STATUS OD_STATUS,
LHT.LIM_SANCT_DATE LIMIT_SANC_DATE,
LHT.LIM_EXP_DATE LIMIT_EXP_DATE,
LHT.SANCT_LIM SANCTION_LIMIT,
LHT.SUPERCEDE_FLG SUPERCEDE_FLAG,
GAM.SCHM_TYPE SCHM_TYPE,
LHT.EVENT_TYPE EVENT_TYPE,
4 SOURCE_ID, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
LHT.SANCT_AUTH_CODE SANCT_AUTH_CODE,
LHT.DESC_OF_SECURITY SECURITY_DESC,
SYSDATE DATE_LAST_MODIFIED ,
SYSDATE DATE_CREATION,
LHT.APPLICABLE_DATE APPLICABLE_DATE
FROM GAM' || V_DB_Link || ' GAM,
LHT' || V_DB_Link || '
WHERE GAM.ACID = LHT.ACID
AND SCHM_TYPE IN(''CAA'',''ODA'',''SBA'')
AND LHT.ENTITY_CRE_FLG = ''Y''
AND LHT.DEL_FLG = ''N''
-- AND LHT.LCHG_TIME >
'||''''||G_LastBusinessDateRun||'''
');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/LHT Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACT_ODS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getcontractODStgData;

/*#######################################################################
##################################################
Name : getcontractTODStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CONTRACTS_TODS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getcontractTODStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getcontractTODStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'CONTRACT_TODS_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CONTRACT_TODS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CONTRACT_TODS_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO CONTRACT_TODS_FEED_STG (


COUNTRY, LE_BOOK,
CONTRACT_ID,TOD_SEQUENCE_NUMBER,
LIMIT_SANC_DATE,LIMIT_EXP_DATE,
SANCTION_LIMIT,DISCRET_ADVN_TYPE,
DISCRET_ADVN_CATGR,DISCRET_ADVN_REGLR_IND,
DISCRET_ADVN_REGLR_DATE,REGULARISED_AMT,
AVAILED_AMT ,ENTITY_TYPE,
SCHM_TYPE,SCHM_CODE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED ,
DATE_CREATION)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
GAM.FORACID CONTRACT_ID,
DAT.DISCRET_ADVN_SRL_NUM
TOD_SEQUENCE_NUMBER,
DAT.DISCRET_ADVN_START_DATE LIMIT_SANC_DATE,
DAT.DISCRET_ADVN_DUE_DATE LIMIT_EXP_DATE,
DAT.DISCRET_ADVN_AMT SANCTION_LIMIT,
DAT.DISCRET_ADVN_TYPE DISCRET_ADVN_TYPE,
DAT.DISCRET_ADVN_CATGR DISCRET_ADVN_CATGR,
DAT.DISCRET_ADVN_REGLR_IND
DISCRET_ADVN_REGLR_IND,
DAT.DISCRET_ADVN_REGLR_DATE
DISCRET_ADVN_REGLR_DATE,
DAT.REGULARISED_AMT REGULARISED_AMT,
DAT.AVAILED_AMT AVAILED_AMT ,
DAT.ENTITY_TYPE ENTITY_TYPE,
GAM.SCHM_TYPE SCHM_TYPE,
GAM.SCHM_CODE SCHM_CODE, '||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED ,
SYSDATE DATE_CREATION
FROM GAM' || V_DB_Link || ' GAM,
DAT' || V_DB_Link || '
WHERE GAM.ACID = DAT.ACID
AND GAM.SCHM_TYPE IN(''CAA'',''ODA'',''SBA'')
AND GAM.ACCT_CLS_FLG =''N''
AND DAT.ENTITY_CRE_FLG = ''Y''
AND DAT.DEL_FLG = ''N''
AND DAT.DISCRET_ADVN_START_DATE <=
'||''''||G_Current_Business_Date ||''''||'
AND DAT.DISCRET_ADVN_DUE_DATE >=
'||''''||G_Current_Business_Date ||''''||'
AND DAT.ENTITY_TYPE
IN(''TODMN'',''TODDS'',''TODIC'',''TODBH'',''TODDL'',''TODIN'',''TODLP'',
''TODSI'',''TODTM'') ' );

EXECUTE IMMEDIATE ('INSERT INTO CONTRACT_TODS_FEED_STG (


COUNTRY, LE_BOOK,
CONTRACT_ID,TOD_SEQUENCE_NUMBER,
LIMIT_SANC_DATE,LIMIT_EXP_DATE,
SANCTION_LIMIT,DISCRET_ADVN_TYPE,
DISCRET_ADVN_CATGR,DISCRET_ADVN_REGLR_IND,
DISCRET_ADVN_REGLR_DATE,REGULARISED_AMT,
AVAILED_AMT ,ENTITY_TYPE,
SCHM_TYPE,SCHM_CODE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED ,
DATE_CREATION)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
GAM.FORACID CONTRACT_ID,
DAT.DISCRET_ADVN_SRL_NUM
TOD_SEQUENCE_NUMBER,
DAT.DISCRET_ADVN_START_DATE
LIMIT_SANC_DATE,
DAT.DISCRET_ADVN_DUE_DATE
LIMIT_EXP_DATE,
DAT.DISCRET_ADVN_AMT
SANCTION_LIMIT,
DAT.DISCRET_ADVN_TYPE
DISCRET_ADVN_TYPE,
DAT.DISCRET_ADVN_CATGR
DISCRET_ADVN_CATGR,
DAT.DISCRET_ADVN_REGLR_IND
DISCRET_ADVN_REGLR_IND,
DAT.DISCRET_ADVN_REGLR_DATE
DISCRET_ADVN_REGLR_DATE,
DAT.REGULARISED_AMT
REGULARISED_AMT,
DAT.AVAILED_AMT AVAILED_AMT ,
DAT.ENTITY_TYPE ENTITY_TYPE,
GAM.SCHM_TYPE SCHM_TYPE,
GAM.SCHM_CODE SCHM_CODE,
'||
''''||G_Current_Business_Date
||''''||'FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED ,
SYSDATE DATE_CREATION
FROM GAM' || V_DB_Link || ' GAM,
DAT' || V_DB_Link || '
WHERE GAM.ACID = DAT.ACID
AND GAM.SCHM_TYPE IN(''CAA'',''ODA'',''SBA'')
AND GAM.ACCT_CLS_FLG =''N''
AND DAT.ENTITY_CRE_FLG = ''Y''
AND DAT.DEL_FLG = ''N''
AND DAT.DISCRET_ADVN_START_DATE <=
'||''''||G_Current_Business_Date ||''''||'
AND DAT.DISCRET_ADVN_DUE_DATE >=
'||''''||G_Current_Business_Date ||''''||'
AND DAT.ENTITY_TYPE
IN(''TODMN'',''TODDS'',''TODIC'',''TODBH'',''TODDL'',''TODIN'',''TODLP'',
''TODSI'',''TODTM'') ' );

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/DAT Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACT_TODS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');
COMMIT;

RETURN SUCCESSFUL_EXIT;

END getcontractTODStgData;

/*#######################################################################
##################################################
Name : getFinAggBalStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CONTRACTS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getFinAggBalStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
bkdCnt Number (6):=0;
upd_tran_type varchar2(2):= null;
upd_tran_amt number(23,5):= 0;
upd_val_amt number(23,5):= 0;
bwd_foracid VARCHAR2(24);
rowcnt number(10):=0;
recsCnt number(10):=0;
bwd_txn_date date;
prev_Business_Date date;
cursor c_emp is select distinct contract_id foracid from
TEMP_TXN_BKWD ORDER BY 1;
r_emp c_emp%ROWTYPE;
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinAggBalStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table


FINANCIAL_AGGBAL_FEED_STG population......');
/*FOr Backdated TXNS */
BEGIN

writeLogInfo('Beginning count checking from


TEMP_TXN_BKWD......');

writeLogInfo('SELECT COUNT(1) FROM TEMP_TXN_BKWD


where COUNTRY ='''||P_Country||'''
And Le_Book = '''||P_Le_Book||'''
and feed_date='||''''||G_Current_Business_Date
||''''||' ');

bkdCnt:=0;
EXECUTE IMMEDIATE 'SELECT COUNT(1) FROM TEMP_TXN_BKWD
where COUNTRY ='''||P_Country||''' And Le_Book =
'''||P_Le_Book||'''
and feed_date='||''''||G_Current_Business_Date
||''''||' ' INTO bkdCnt;

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

writeLogInfo('bkdCnt [' || TO_CHAR(bkdCnt) || '] ');

EXCEPTION
WHEN OTHERS
THEN
G_Error_Msg:='Error While Backdated TXN Checking';
writeErrLogInfo(G_Error_Msg);
RETURN ERRONEOUS_EXIT;
END;

IF ( bkdCnt <> 0 ) Then


writeLogInfo('Back dated txns exist [' || TO_CHAR(bkdCnt) ||
'] ');

BEGIN

writeLogInfo('Beginning min date from


TEMP_TXN_BKWD......');

writeLogInfo('SELECT min(tran_date) FROM TEMP_TXN_BKWD


where COUNTRY ='''||P_Country||''' And
Le_Book = '''||P_Le_Book||''')
and
feed_date='||''''||G_Current_Business_Date ||''''||' ');

bkdStartDate:=null;
EXECUTE IMMEDIATE 'SELECT min(tran_date) FROM TEMP_TXN_BKWD
where COUNTRY ='''||P_Country||''' And
Le_Book = '''||P_Le_Book||'''
and
feed_date='||''''||G_Current_Business_Date ||''''||' ' INTO
bkdStartDate;

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
G_Error_Msg:='Error While Backdated TXN Checking';
writeErrLogInfo(G_Error_Msg);
RETURN ERRONEOUS_EXIT;
END;

writeLogInfo('BWD MIN DT:: '''||bkdStartDate||''' ');

G_Bwd_Business_Date:=
TO_CHAR(to_date(G_Current_Business_Date,'DD-MON-RRRR')-1 ,'DD-MON-RRRR');

writeLogInfo('G_Bwd_Business_Date:
'''||G_Bwd_Business_Date||''' ');

for l_date in to_char(to_date(''||bkdStartDate||'', 'DD-MON-


RRRR'), 'J') .. to_char(to_date(''||G_Bwd_Business_Date||'', 'DD-MON-
RRRR'),'J')
loop

bwd_txn_date:= TO_CHAR(to_date(l_date, 'J'),'DD-MON-RRRR');

writeLogInfo('before Bwd Tran date');

writeLogInfo('bwd_txn_date: '''||bwd_txn_date||'''
');

/*declare
cursor c2 is select distinct contract_id foracid from
TEMP_TXN_BKWD1 ORDER BY 1; */

BEGIN

/*FOR l2 in c2*/
open c_emp;
loop
fetch c_emp into r_emp;

exit when c_emp%NOTFOUND;

bwd_foracid :=r_emp.foracid;

writeLogInfo('bwd_foracid: '''||bwd_foracid||''' ');


Begin

rowcnt:=0;

writeLogInfo('Beginning count from


FINANCIAL_AGGBAL_FEED_STG......');

writeLogInfo('select count(1) FROM


FINANCIAL_AGGBAL_FEED_STG
WHERE FEED_DATE = '''||bwd_txn_date||'''
AND COUNTRY= '''||P_Country||'''
AND LE_BOOK = '''||P_Le_Book||'''
AND FORACID = '''||bwd_foracid||''' ');

EXECUTE IMMEDIATE ' select count(1) FROM


FINANCIAL_AGGBAL_FEED_STG
WHERE FEED_DATE = '''||bwd_txn_date||'''
AND COUNTRY= '''||P_Country||'''
AND LE_BOOK = '''||P_Le_Book||'''
AND FORACID = '''||bwd_foracid||''' ' into
rowcnt ;

EXCEPTION
When NO_DATA_FOUND
Then
writeLogInfo('No Data found FIN
AGGBAL !!');
When Others
Then
writeLogInfo('ERROR WHILE select
FROM AGGBAL !!');
RETURN ERRONEOUS_EXIT;

END;

writeLogInfo('bwd_foracid rowcnt: '''||rowcnt||'''


');

if (rowcnt =0 ) then
BEGIN

writeLogInfo('Beginning insert into


FINANCIAL_AGGBAL_FEED_STG FIN_AGGBAL_FEED_STG_BWD......');

writeLogInfo('INSERT INTO FINANCIAL_AGGBAL_FEED_STG (


COUNTRY,LE_BOOK,
VISION_GL,FORACID,
TRAN_CCY,BUSINESS_DATE,
TRAN_TYPE,ACCOUNT_TYPE,
TRAN_AMT,VALUE_AMT,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,VISION_OUC)
SELECT distinct '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
t2.mapping_source_vision_gl VISION_GL,
gam.FORACID,
gam.ACCT_CRNCY_CODE TRAN_CCY,
TO_DATE('''||bwd_txn_date||''' ,''DD-MON-
RRRR'') BUSINESS_DATE,

DECODE(TRAN_DATE_BAL,ABS(TRAN_DATE_BAL),''C'',''D'') TRAN_TYPE,
gam.SCHM_TYPE ACCOUNT_TYPE,
TRAN_DATE_BAL TRAN_AMT,
VALUE_DATE_BAL VALUE_AMT,
TO_DATE('''||bwd_txn_date||''' ,''DD-MON-
RRRR'') FEED_DATE,
''AGGBAL'' PRODUCT,
''N'' RUN_STATUS,
EOD_DATE DATE_LAST_MODIFIED,
EOD_DATE DATE_CREATION,
GAM.SOL_ID VISION_OUC
FROM
gam@finacleprod GAM,
EAB@finacleprod EAB1 ,
gl_translation t2
WHERE
GAM.acid = EAB1.acid
and gam.GL_SUB_HEAD_CODE= t2.vision_gl
and gam.foracid='''||bwd_foracid||'''
and TO_DATE('''||bwd_txn_date||''' ,''DD-MON-
RRRR'') between eod_date and end_eod_date');

EXECUTE IMMEDIATE 'INSERT INTO


FINANCIAL_AGGBAL_FEED_STG (
COUNTRY,LE_BOOK,
VISION_GL,FORACID,
TRAN_CCY,BUSINESS_DATE,
TRAN_TYPE,ACCOUNT_TYPE,
TRAN_AMT,VALUE_AMT,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,VISION_OUC)
SELECT distinct '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
t2.mapping_source_vision_gl VISION_GL,
gam.FORACID,
gam.ACCT_CRNCY_CODE TRAN_CCY,
TO_DATE('''||bwd_txn_date||''' ,''DD-MON-
RRRR'') BUSINESS_DATE,

DECODE(TRAN_DATE_BAL,ABS(TRAN_DATE_BAL),''C'',''D'') TRAN_TYPE,
gam.SCHM_TYPE ACCOUNT_TYPE,
TRAN_DATE_BAL TRAN_AMT,
VALUE_DATE_BAL VALUE_AMT,
TO_DATE('''||bwd_txn_date||''' ,''DD-MON-
RRRR'') FEED_DATE,
''AGGBAL'' PRODUCT,
''N'' RUN_STATUS,
EOD_DATE DATE_LAST_MODIFIED,
EOD_DATE DATE_CREATION,
GAM.SOL_ID VISION_OUC
FROM
gam@finacleprod GAM,
EAB@finacleprod EAB1 ,
gl_translation t2
WHERE
GAM.acid = EAB1.acid
and gam.GL_SUB_HEAD_CODE= t2.vision_gl
and gam.foracid='''||bwd_foracid||'''
and TO_DATE('''||bwd_txn_date||''' ,''DD-MON-
RRRR'') between eod_date and end_eod_date';

EXCEPTION
When Others
Then
writeLogInfo('ERROR WHILE
inserting BKWD REC FIN AGGBAL !!');
RETURN ERRONEOUS_EXIT;
END;
Else

writeLogInfo(' Inside else ');

BEGIN
upd_tran_type := null;
upd_tran_amt := 0;
upd_val_amt := 0;

writeLogInfo('Beginning getting data from


EAB......');

writeLogInfo( 'select
DECODE(TRAN_DATE_BAL,ABS(TRAN_DATE_BAL),''C'',''D'') TRAN_TYPE,
TRAN_DATE_BAL TRAN_AMT, VALUE_DATE_BAL
VALUE_AMT
FROM
GAM@FINACLEPROD GAM,
EAB@FINACLEPROD EAB1
WHERE
GAM.acid = EAB1.acid
and GAM.FORACID = '''||bwd_foracid||'''
and
TO_DATE('''||bwd_txn_date||''',''DD-MON-RRRR'') between EAB1.eod_date and
EAB1.end_eod_date ') ;
EXECUTE IMMEDIATE ' select
DECODE(TRAN_DATE_BAL,ABS(TRAN_DATE_BAL),''C'',''D'') TRAN_TYPE,
TRAN_DATE_BAL TRAN_AMT,
VALUE_DATE_BAL VALUE_AMT
FROM
GAM@FINACLEPROD GAM,
EAB@FINACLEPROD EAB1
WHERE
GAM.acid = EAB1.acid
and GAM.FORACID
='''||bwd_foracid||'''
and
TO_DATE('''||bwd_txn_date||''',''DD-MON-RRRR'') between EAB1.eod_date and
EAB1.end_eod_date ' into upd_tran_type,upd_tran_amt,upd_val_amt ;

EXCEPTION
When NO_DATA_FOUND
Then
writeLogInfo('No Data found to update
BWD AGGBAL !!');
When Others
Then
writeLogInfo('ERROR WHILE Select
AGGBAL !!');
RETURN ERRONEOUS_EXIT;
END;

Begin

writeLogInfo('Beginning update from


FINANCIAL_AGGBAL_FEED_STG......');

writeLogInfo( ' update FINANCIAL_AGGBAL_FEED_STG


set tran_type = '''||upd_tran_type||''',

tran_amt = '||upd_tran_amt||',

VALUE_AMT = '||upd_val_amt||'
where feed_date=
TO_DATE('''||bwd_txn_date||''',''DD-MON-RRRR'') and
foracid='''||bwd_foracid||''' ');

EXECUTE IMMEDIATE( ' update


FINANCIAL_AGGBAL_FEED_STG set tran_type = '''||upd_tran_type||''',

tran_amt = '||upd_tran_amt||',

VALUE_AMT = '||upd_val_amt||'
where feed_date=
TO_DATE('''||bwd_txn_date||''',''DD-MON-RRRR'') and
foracid='''||bwd_foracid||''' ');
EXCEPTION
When NO_DATA_FOUND
Then
writeLogInfo('No Data found to update
BWD AGGBAL !!');
When Others
Then
writeLogInfo('ERROR WHILE Updating
AGGBAL !![' || SQLCODE || '] Error Message was [' || SQLERRM || ']');
RETURN ERRONEOUS_EXIT;
END;
end if;
end loop;
close c_emp;
end;
end loop;
--End;

--End;

END IF;

BEGIN

writeLogInfo('Beginning inserting from


FINANCIAL_AGGBAL_FEED_STG......');

writeLogInfo('INSERT INTO FINANCIAL_AGGBAL_FEED_STG (


COUNTRY,LE_BOOK,
VISION_GL,FORACID,
TRAN_CCY,BUSINESS_DATE,
TRAN_TYPE,ACCOUNT_TYPE,
TRAN_AMT,VALUE_AMT,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,VISION_OUC)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
GL_SUB_HEAD_CODE VISION_GL,
FORACID,
ACCT_CRNCY_CODE TRAN_CCY,'||
''''||G_Current_Business_Date ||''''||'
BUSINESS_DATE,

DECODE(TRAN_DATE_BAL,ABS(TRAN_DATE_BAL),''C'',''D'') TRAN_TYPE,
SCHM_TYPE ACCOUNT_TYPE,
TRAN_DATE_BAL TRAN_AMT,
VALUE_DATE_BAL VALUE_AMT,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
EOD_DATE DATE_LAST_MODIFIED,
EOD_DATE DATE_CREATION,
GAM.SOL_ID VISION_OUC
FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
EAB' || V_DB_Link || ' EAB1
WHERE
GAM.acid = EAB1.acid
and '||''''||G_Current_Business_Date ||''''||'
between EAB1.eod_date and EAB1.end_eod_date
UNIOn
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
GL_SUB_HEAD_CODE VISION_GL,
FORACID,
ACCT_CRNCY_CODE TRAN_CCY,'||
''''||G_Current_Business_Date ||''''||'
BUSINESS_DATE,

DECODE(TRAN_DATE_BAL,ABS(TRAN_DATE_BAL),''C'',''D'') TRAN_TYPE,
SCHM_TYPE ACCOUNT_TYPE,
TRAN_DATE_BAL TRAN_AMT,
VALUE_DATE_BAL VALUE_AMT,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
EOD_DATE DATE_LAST_MODIFIED,
EOD_DATE DATE_CREATION,
GAM.SOL_ID VISION_OUC
FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
EAB' || V_DB_Link || ' EAB1
WHERE
GAM.acid = EAB1.acid
AND gam.acct_cls_flg=''Y''
AND TRAN_DATE_BAL <>0
AND GL_SUB_HEAD_CODE=''16000''
And case when EAB1.end_eod_date <
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'') then
gam.ACCT_CLS_DATE
else to_date('||''''||G_Current_Business_Date
||''''||',''DD_MON-RRRR'') end between EAB1.eod_date and
EAB1.end_eod_date ' );

EXECUTE IMMEDIATE ('INSERT INTO FINANCIAL_AGGBAL_FEED_STG (


COUNTRY,LE_BOOK,
VISION_GL,FORACID,
TRAN_CCY,BUSINESS_DATE,
TRAN_TYPE,ACCOUNT_TYPE,
TRAN_AMT,VALUE_AMT,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,VISION_OUC)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
GL_SUB_HEAD_CODE VISION_GL,
FORACID,
ACCT_CRNCY_CODE TRAN_CCY,'||
''''||G_Current_Business_Date ||''''||'
BUSINESS_DATE,

DECODE(TRAN_DATE_BAL,ABS(TRAN_DATE_BAL),''C'',''D'') TRAN_TYPE,
SCHM_TYPE ACCOUNT_TYPE,
TRAN_DATE_BAL TRAN_AMT,
VALUE_DATE_BAL VALUE_AMT,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
EOD_DATE DATE_LAST_MODIFIED,
EOD_DATE DATE_CREATION,
GAM.SOL_ID VISION_OUC
FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
EAB' || V_DB_Link || ' EAB1
WHERE
GAM.acid = EAB1.acid
and '||''''||G_Current_Business_Date ||''''||'
between EAB1.eod_date and EAB1.end_eod_date
UNIOn
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
GL_SUB_HEAD_CODE VISION_GL,
FORACID,
ACCT_CRNCY_CODE TRAN_CCY,'||
''''||G_Current_Business_Date ||''''||'
BUSINESS_DATE,

DECODE(TRAN_DATE_BAL,ABS(TRAN_DATE_BAL),''C'',''D'') TRAN_TYPE,
SCHM_TYPE ACCOUNT_TYPE,
TRAN_DATE_BAL TRAN_AMT,
VALUE_DATE_BAL VALUE_AMT,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
EOD_DATE DATE_LAST_MODIFIED,
EOD_DATE DATE_CREATION,
GAM.SOL_ID VISION_OUC
FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
EAB' || V_DB_Link || ' EAB1
WHERE
GAM.acid = EAB1.acid
AND gam.acct_cls_flg=''Y''
AND TRAN_DATE_BAL <>0
AND GL_SUB_HEAD_CODE=''16000''
and case when EAB1.end_eod_date <
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'') then
gam.ACCT_CLS_DATE
else to_date('||''''||G_Current_Business_Date
||''''||',''DD_MON-RRRR'') end between EAB1.eod_date and
EAB1.end_eod_date ' );

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables
GAM/VISION_EAB/VISION_GAM Does not exists/not accessiable !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate FINANCIAL_AGGBAL_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Beginning for loop for last 5 days ...');

for rec_cnt in REVERSE 1 .. 5


loop
prev_Business_Date:=
TO_CHAR(to_date(G_Current_Business_Date,'DD-MON-RRRR')-rec_cnt ,'DD-MON-
RRRR');

writeLogInfo('prev_Business_Date:
'''||prev_Business_Date||''' ');

rowcnt:=0;

Begin
writeLogInfo('select count(1) FROM
FINANCIAL_AGGBAL_FEED_STG
WHERE COUNTRY= '''||P_Country||'''
AND LE_BOOK = '''||P_Le_Book||'''
AND feed_date = '''||prev_Business_Date||'''
');

EXECUTE IMMEDIATE 'select count(1) FROM


FINANCIAL_AGGBAL_FEED_STG
WHERE COUNTRY = '''||P_Country||'''
AND LE_BOOK = '''||P_Le_Book||'''
AND feed_date = '''||prev_Business_Date||''' '
INTO recsCnt;

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

writeLogInfo('recsCnt [' || TO_CHAR(recsCnt)


|| '] ');

EXCEPTION
When NO_DATA_FOUND
Then
writeLogInfo('No Data found FIN
AGGBAL !!');
When Others
Then
writeLogInfo('ERROR WHILE select
FROM AGGBAL !!');
RETURN ERRONEOUS_EXIT;

END;

if recsCnt = 0 then

writeLogInfo('G_LastBusinessDateRun:
'''||G_LastBusinessDateRun||''' ');
writeLogInfo('G_Current_Business_Date:
'''||prev_Business_Date||''' ');

if (TO_CHAR(TO_DATE(G_LastBusinessDateRun,'DD-
MON-RRRR'),'RRRR') = TO_CHAR(TO_DATE(prev_Business_Date,'DD-MON-
RRRR'),'RRRR')) Then

BEGIN
writeLogInfo('Beginning insert into
FINANCIAL_AGGBAL_FEED_STG for Previous Days ...');

writeLogInfo(' INSERT INTO


FINANCIAL_AGGBAL_FEED_STG (
COUNTRY,LE_BOOK,
VISION_GL,FORACID,
TRAN_CCY,
BUSINESS_DATE,
TRAN_TYPE,ACCOUNT_TYPE,
TRAN_AMT,VALUE_AMT,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,VISION_OUC)
SELECT COUNTRY,LE_BOOK,
VISION_GL,FORACID,
TRAN_CCY,

TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'') BUSINESS_DATE,
TRAN_TYPE,ACCOUNT_TYPE,
TRAN_AMT,VALUE_AMT,

TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'') FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,VISION_OUC
FROM
FINANCIAL_AGGBAL_FEED_STG
WHERE FEED_DATE=
TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'')-1 ');

EXECUTE IMMEDIATE (' INSERT INTO


FINANCIAL_AGGBAL_FEED_STG (
COUNTRY,LE_BOOK,
VISION_GL,FORACID,
TRAN_CCY,
BUSINESS_DATE,
TRAN_TYPE,ACCOUNT_TYPE,
TRAN_AMT,VALUE_AMT,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,VISION_OUC)
SELECT COUNTRY,LE_BOOK,
VISION_GL,FORACID,
TRAN_CCY,

TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'') BUSINESS_DATE,
TRAN_TYPE,ACCOUNT_TYPE,
TRAN_AMT,VALUE_AMT,

TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'') FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,VISION_OUC
FROM
FINANCIAL_AGGBAL_FEED_STG
WHERE FEED_DATE=
TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'')-1 ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
writeLogInfo('Unhandled Exception raised
trying to populate FINANCIAL_AGGBAL_FEED_STG !!');
RETURN ERRONEOUS_EXIT;

END;

Begin

writeLogInfo('Beginning insert into FIN_DLY_AGGBAL for


Previous Days ...');

writeLogInfo('INSERT INTO FIN_DLY_AGGBAL (COUNTRY,


LE_BOOK,
GL,
ACCOUNT_NO,
CURRENCY,
BUSINESS_DATE,
EOP_BAL_FCY_DR,
EOP_BAL_FCY_CR,
EOP_BAL_LCY_DR,
EOP_BAL_LCY_CR,
DATE_LAST_MODIFIED,
DATE_CREATION,
RATE)
select COUNTRY,
LE_BOOK,
GL,
ACCOUNT_NO,
CURRENCY,

TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'') BUSINESS_DATE,
EOP_BAL_FCY_DR,
EOP_BAL_FCY_CR,
EOP_BAL_LCY_DR,
EOP_BAL_LCY_CR,
DATE_LAST_MODIFIED,
DATE_CREATION,
RATE FROM FIN_DLY_AGGBAL WHERE
BUSINESS_DATE=TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'')-1 ');

EXECUTE IMMEDIATE ('INSERT INTO FIN_DLY_AGGBAL


(COUNTRY,
LE_BOOK,
GL,
ACCOUNT_NO,
CURRENCY,
BUSINESS_DATE,
EOP_BAL_FCY_DR,
EOP_BAL_FCY_CR,
EOP_BAL_LCY_DR,
EOP_BAL_LCY_CR,
DATE_LAST_MODIFIED,
DATE_CREATION,
RATE)
select COUNTRY,
LE_BOOK,
GL,
ACCOUNT_NO,
CURRENCY,

TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'') BUSINESS_DATE,
EOP_BAL_FCY_DR,
EOP_BAL_FCY_CR,
EOP_BAL_LCY_DR,
EOP_BAL_LCY_CR,
DATE_LAST_MODIFIED,
DATE_CREATION,
RATE FROM FIN_DLY_AGGBAL WHERE
BUSINESS_DATE=TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'')-1 ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables
FIN_DLY_AGGBAL Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception
raised trying to populate FIN_DLY_AGGBAL !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

Else

BEGIN
writeLogInfo('Beginning insert into
FINANCIAL_AGGBAL_FEED_STG for previous YEar and Current YEar...');

writeLogInfo(' INSERT INTO


FINANCIAL_AGGBAL_FEED_STG (
COUNTRY,LE_BOOK,
VISION_GL,FORACID,
TRAN_CCY,
BUSINESS_DATE,
TRAN_TYPE,ACCOUNT_TYPE,
TRAN_AMT,VALUE_AMT,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,VISION_OUC)
SELECT COUNTRY,LE_BOOK,
VISION_GL,FORACID,
TRAN_CCY,

TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'') BUSINESS_DATE,
TRAN_TYPE,ACCOUNT_TYPE,
TRAN_AMT,VALUE_AMT,

TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'') FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,VISION_OUC
FROM
FINANCIAL_AGGBAL_FEED_STG
WHERE FEED_DATE=
TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'')-1
and substR(vision_gl,1,1) not in
(''5'',''6'') ');

EXECUTE IMMEDIATE (' INSERT INTO


FINANCIAL_AGGBAL_FEED_STG (
COUNTRY,LE_BOOK,
VISION_GL,FORACID,
TRAN_CCY,
BUSINESS_DATE,
TRAN_TYPE,ACCOUNT_TYPE,
TRAN_AMT,VALUE_AMT,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,VISION_OUC)
SELECT COUNTRY,LE_BOOK,
VISION_GL,FORACID,
TRAN_CCY,

TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'') BUSINESS_DATE,
TRAN_TYPE,ACCOUNT_TYPE,
TRAN_AMT,VALUE_AMT,

TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'') FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,VISION_OUC
FROM
FINANCIAL_AGGBAL_FEED_STG
WHERE FEED_DATE=
TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'')-1
and substR(vision_gl,1,1) not in
(''5'',''6'') ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
writeLogInfo('Unhandled Exception raised
trying to populate FINANCIAL_AGGBAL_FEED_STG !!');
RETURN ERRONEOUS_EXIT;

END;

Begin

writeLogInfo('Beginning insert into FIN_DLY_AGGBAL for


Previous Days ...');

writeLogInfo('INSERT INTO FIN_DLY_AGGBAL (COUNTRY,


LE_BOOK,
GL,
ACCOUNT_NO,
CURRENCY,
BUSINESS_DATE,
EOP_BAL_FCY_DR,
EOP_BAL_FCY_CR,
EOP_BAL_LCY_DR,
EOP_BAL_LCY_CR,
DATE_LAST_MODIFIED,
DATE_CREATION,
RATE)
select COUNTRY,
LE_BOOK,
GL,
ACCOUNT_NO,
CURRENCY,

TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'') BUSINESS_DATE,
EOP_BAL_FCY_DR,
EOP_BAL_FCY_CR,
EOP_BAL_LCY_DR,
EOP_BAL_LCY_CR,
DATE_LAST_MODIFIED,
DATE_CREATION,
RATE FROM FIN_DLY_AGGBAL
WHERE
BUSINESS_DATE=TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'')-1
and substR(GL,1,1) not in (''5'',''6'')
');

EXECUTE IMMEDIATE ('INSERT INTO FIN_DLY_AGGBAL


(COUNTRY,
LE_BOOK,
GL,
ACCOUNT_NO,
CURRENCY,
BUSINESS_DATE,
EOP_BAL_FCY_DR,
EOP_BAL_FCY_CR,
EOP_BAL_LCY_DR,
EOP_BAL_LCY_CR,
DATE_LAST_MODIFIED,
DATE_CREATION,
RATE)
select COUNTRY,
LE_BOOK,
GL,
ACCOUNT_NO,
CURRENCY,

TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'') BUSINESS_DATE,
EOP_BAL_FCY_DR,
EOP_BAL_FCY_CR,
EOP_BAL_LCY_DR,
EOP_BAL_LCY_CR,
DATE_LAST_MODIFIED,
DATE_CREATION,
RATE FROM FIN_DLY_AGGBAL
WHERE
BUSINESS_DATE=TO_DATE('''||prev_Business_Date||''',''DD-MON-RRRR'')-1
and substR(GL,1,1) not in (''5'',''6'')
');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables
FIN_DLY_AGGBAL Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception
raised trying to populate FIN_DLY_AGGBAL !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

END IF;
END IF;
end loop;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getFinAggBalStgData;

/*#######################################################################
##################################################
Name : getFinancialStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CONTRACTS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getFinancialStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinancialStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'FINANCIAL_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop FINANCIAL_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table FINANCIAL_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO FINANCIAL_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
VISION_GL,VISION_OUC,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE,COST_CENTER,
PROFIT_CENTER,MIS_CURRENCY,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
GAM.FORACID CONTRACT_ID,
HTD.GL_SUB_HEAD_CODE VISION_GL,
GAM.SOL_ID VISION_OUC, /* SD
Asking To Cahnge From Process OUC to Account Ouc */
HTD.TRAN_CRNCY_CODE TRAN_CCY,
HTD.PART_TRAN_TYPE TRAN_TYPE,
SUM(TRAN_AMT) TRAN_AMT,'||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NVL(HTD.VALUE_DATE,'||
''''||G_Current_Business_Date ||''''||')
VALUE_DATE,
GAM.SCHM_TYPE SCHM_TYPE,
NVL(HTD.TRAN_PARTICULAR_CODE,''NA'')
COST_CENTER,
''NA'' PROFIT_CENTER,GAM.ACCT_CRNCY_CODE,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
HTD.TRAN_DATE DATE_LAST_MODIFIED,
HTD.TRAN_DATE DATE_CREATION
FROM
TEMP_TXN_DTL_HTD HTD,
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
CEM' || V_DB_Link || ' CEM
WHERE
HTD.ACID =GAM.ACID
AND GAM.CUST_ID =CEM.CUST_ID(+)
AND TRAN_DATE =
'||''''||G_Current_Business_Date||''''|| '
AND HTD.DEL_FLG =''N''
AND GAM.DEL_FLG =''N''
AND NVL(TRAN_RMKS,''NA'') NOT LIKE ''P%L ZERO''
--AND NVL(TRAN_PARTICULAR,''NA'') NOT LIKE
''%TRF%TO%P%L%PREVIOUS%YEARS%''
GROUP BY
GAM.CUST_ID, GAM.FORACID,
HTD.GL_SUB_HEAD_CODE ,
GAM.SOL_ID,
HTD.TRAN_PARTICULAR_CODE,NVL(CEM.FREE_CODE_2,''NA''),
HTD.TRAN_CRNCY_CODE,
HTD.PART_TRAN_TYPE, HTD.TRAN_AMT,
HTD.TRAN_DATE,
NVL(HTD.VALUE_DATE, '||
''''||G_Current_Business_Date ||''''||')
,
GAM.SCHM_TYPE,GAM.ACCT_CRNCY_CODE
UNION ALL
select
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
VISION_GL,VISION_OUC,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE,COST_CENTER,
PROFIT_CENTER,ACCT_CRNCY_CODE MIS_CURRENCY,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION
from TEMP_TXN_BKWD');

IF ( G_LastBusinessDateRun = '01-JAN-1900') THEN


EXECUTE IMMEDIATE ('INSERT INTO FINANCIAL_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
VISION_GL,VISION_OUC,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,VALUE_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE,COST_CENTER,
PROFIT_CENTER,MIS_CURRENCY,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(CUST_ID) CUSTOMER_ID,
FORACID CONTRACT_ID,
GL_SUB_HEAD_CODE VISION_GL,
SOL_ID VISION_OUC,
ACCT_CRNCY_CODE TRAN_CCY,

DECODE(TRAN_DATE_BAL,ABS(TRAN_DATE_BAL),''C'',''D'') TRAN_TYPE,
TRAN_DATE_BAL TRAN_AMT,
VALUE_DATE_BAL VALUE_AMT,'||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,'||
''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
SCHM_TYPE SCHM_TYPE,
''NA'' COST_CENTER,
''NA''
PROFIT_CENTER,GAM.ACCT_CRNCY_CODE,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
EOD_DATE DATE_LAST_MODIFIED,
EOD_DATE DATE_CREATION
FROM
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
EAB' || V_DB_Link || ' EAB1
WHERE GAM.acid = EAB1.acid
and '||''''||G_Current_Business_Date ||''''||'
between EAB1.eod_date and EAB1.end_eod_date ' );
ELSE
EXECUTE IMMEDIATE ('INSERT INTO FINANCIAL_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
VISION_GL,VISION_OUC,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE,COST_CENTER,
PROFIT_CENTER,MIS_CURRENCY,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
GAM.FORACID CONTRACT_ID,
HTD.GL_SUB_HEAD_CODE VISION_GL,
GAM.SOL_ID VISION_OUC, /* SD
Asking To Cahnge From Process OUC to Account Ouc */
HTD.TRAN_CRNCY_CODE TRAN_CCY,
HTD.PART_TRAN_TYPE TRAN_TYPE,
SUM(TRAN_AMT) TRAN_AMT,'||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NVL(HTD.VALUE_DATE,'||
''''||G_Current_Business_Date ||''''||')
VALUE_DATE,
GAM.SCHM_TYPE SCHM_TYPE,
NVL(HTD.TRAN_PARTICULAR_CODE,''NA'')
COST_CENTER,
''NA'' PROFIT_CENTER,GAM.ACCT_CRNCY_CODE,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
HTD.TRAN_DATE DATE_LAST_MODIFIED,
HTD.TRAN_DATE DATE_CREATION
FROM
TEMP_TXN_DTL_HTD HTD,
'||G_GAM_Table||'' || V_DB_Link || ' GAM,
CEM' || V_DB_Link || ' CEM
WHERE
HTD.ACID =GAM.ACID
AND GAM.CUST_ID =CEM.CUST_ID(+)
AND TRAN_DATE =
'||''''||G_Current_Business_Date||''''|| '
AND HTD.DEL_FLG =''N''
AND GAM.DEL_FLG =''N''
AND NVL(TRAN_RMKS,''NA'') NOT LIKE ''P%L ZERO''
--AND NVL(TRAN_PARTICULAR,''NA'') NOT LIKE
''%TRF%TO%P%L%PREVIOUS%YEARS%''
GROUP BY
GAM.CUST_ID, GAM.FORACID,
HTD.GL_SUB_HEAD_CODE ,
GAM.SOL_ID,
HTD.TRAN_PARTICULAR_CODE,NVL(CEM.FREE_CODE_2,''NA''),
HTD.TRAN_CRNCY_CODE,
HTD.PART_TRAN_TYPE, HTD.TRAN_AMT,
HTD.TRAN_DATE,
NVL(HTD.VALUE_DATE, '||
''''||G_Current_Business_Date ||''''||')
,
GAM.SCHM_TYPE,GAM.ACCT_CRNCY_CODE
UNION ALL
select
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
VISION_GL,VISION_OUC,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE,COST_CENTER,
PROFIT_CENTER,ACCT_CRNCY_CODE MIS_CURRENCY,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION
from TEMP_TXN_BKWD');

END IF;

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
IF ( G_LastBusinessDateRun = '01-JAN-1900') THEN
writeLogInfo('The Source tables GAM/EAB Does
not exists/not accessiable !! Aborting execution.');
ELSE
writeLogInfo('The Source tables GAM/HTD Does
not exists/not accessiable !! Aborting execution.');
END IF;

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate FINANCIAL_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getFinancialStgData;

/*#######################################################################
##################################################
Name : getFinancialTranCntStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CONTRACTS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getFinancialTranCntStgData(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinancialTranCntStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'TRANSCNT_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TRANSCNT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table TRANSCNT_FEED_STG


population......');

BEGIN
writeLogInfo('INSERT INTO TRANSCNT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
VISION_GL,TRAN_PARTICULAR ,
TRAN_ID,PART_TRAN_SRL_NUM,
TRAN_CCY,TRAN_TYPE,
TRAN_SUB_TYPE,PART_TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
VALUE_DATE,ACCT_OWNERSHIP,
SCHM_TYPE,PROCESS_OUC,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,REF_NUM,
TRAN_RMKS,ENTRY_USER_ID,
PSTD_USER_ID,VFD_USER_ID,
ENTRY_DATE,DEL_FLG,
PSTD_FLG,INSTRMNT_NUM,
INSTRMNT_TYPE,VFD_DATE,
TRAN_CRE_MODE,NUM_CR_TRAN_PSTD,
RPT_CODE,PRNT_ADVC_IND,Transaction_Channel)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
GAM.FORACID CONTRACT_ID,
HTD.GL_SUB_HEAD_CODE VISION_GL,
HTD.TRAN_PARTICULAR ,
HTD.TRAN_ID,
HTD.PART_TRAN_SRL_NUM,
HTD.TRAN_CRNCY_CODE TRAN_CCY,
HTD.TRAN_TYPE ,
HTD.TRAN_SUB_TYPE ,
HTD.PART_TRAN_TYPE PART_TRAN_TYPE,
HTD.TRAN_AMT, '||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NVL(HTD.VALUE_DATE,'||
''''||G_Current_Business_Date ||''''||')
VALUE_DATE,
GAM.ACCT_OWNERSHIP ,
GAM.SCHM_TYPE SCHM_TYPE,
HTH.INIT_SOL_ID PROCESS_OUC, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
HTD.TRAN_DATE DATE_LAST_MODIFIED,
HTD.TRAN_DATE DATE_CREATION,
HTD.REF_NUM REF_NUM,
HTD.TRAN_RMKS TRAN_RMKS,
HTD.ENTRY_USER_ID ENTRY_USER_ID,
HTD.PSTD_USER_ID PSTD_USER_ID,
HTD.VFD_USER_ID VFD_USER_ID,
HTD.ENTRY_DATE ENTRY_DATE,
HTD.DEL_FLG DEL_FLG,
HTD.PSTD_FLG PSTD_FLG,
HTD.INSTRMNT_NUM INSTRMNT_NUM,
HTD.INSTRMNT_TYPE INSTRMNT_TYPE,
HTD.VFD_DATE VFD_DATE,
HTH.TRAN_CRE_MODE,
HTH.NUM_CR_TRAN_PSTD,
--HTD.RPT_CODE,
HTD.TRAN_PARTICULAR_CODE RPT_CODE,
HTD.PRNT_ADVC_IND PRNT_ADVC_IND,
Transaction_Channel
FROM
TEMP_TXN_DTL_HTD HTD, '||G_GAM_Table||'' ||
V_DB_Link || ' GAM , '||G_HTH_Table||'' || V_DB_Link || ' HTH
WHERE
HTD.ACID =GAM.ACID
AND HTD.TRAN_DATE = HTH.TRAN_DATE
AND HTD.TRAN_ID = HTH.TRAN_ID
AND HTH.TRAN_DATE =
'||''''||G_Current_Business_Date||''''|| '
AND HTD.TRAN_DATE =
'||''''||G_Current_Business_Date||''''|| '
AND HTD.DEL_FLG =''N''
AND GAM.DEL_FLG =''N'' ');

IF ( G_LastBusinessDateRun = '01-JAN-1900') THEN


EXECUTE IMMEDIATE ('INSERT INTO TRANSCNT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
VISION_GL,TRAN_PARTICULAR ,
TRAN_ID,PART_TRAN_SRL_NUM,
TRAN_CCY,TRAN_TYPE,
TRAN_SUB_TYPE,PART_TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
VALUE_DATE,ACCT_OWNERSHIP,
SCHM_TYPE,PROCESS_OUC,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,REF_NUM,
TRAN_RMKS,ENTRY_USER_ID,
PSTD_USER_ID,VFD_USER_ID,
ENTRY_DATE,DEL_FLG,
PSTD_FLG,INSTRMNT_NUM,
INSTRMNT_TYPE,VFD_DATE,
TRAN_CRE_MODE,NUM_CR_TRAN_PSTD,
RPT_CODE,PRNT_ADVC_IND,Transaction_Channel)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
GAM.FORACID CONTRACT_ID,
HTD.GL_SUB_HEAD_CODE VISION_GL,
HTD.TRAN_PARTICULAR ,
HTD.TRAN_ID,
HTD.PART_TRAN_SRL_NUM,
HTD.TRAN_CRNCY_CODE TRAN_CCY,
HTD.TRAN_TYPE ,
HTD.TRAN_SUB_TYPE ,
HTD.PART_TRAN_TYPE PART_TRAN_TYPE,
HTD.TRAN_AMT, '||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NVL(HTD.VALUE_DATE,'||
''''||G_Current_Business_Date ||''''||')
VALUE_DATE,
GAM.ACCT_OWNERSHIP ,
GAM.SCHM_TYPE SCHM_TYPE,
HTH.INIT_SOL_ID PROCESS_OUC, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
HTD.TRAN_DATE DATE_LAST_MODIFIED,
HTD.TRAN_DATE DATE_CREATION,
HTD.REF_NUM REF_NUM,
HTD.TRAN_RMKS TRAN_RMKS,
HTD.ENTRY_USER_ID ENTRY_USER_ID,
HTD.PSTD_USER_ID PSTD_USER_ID,
HTD.VFD_USER_ID VFD_USER_ID,
HTD.ENTRY_DATE ENTRY_DATE,
HTD.DEL_FLG DEL_FLG,
HTD.PSTD_FLG PSTD_FLG,
HTD.INSTRMNT_NUM INSTRMNT_NUM,
HTD.INSTRMNT_TYPE INSTRMNT_TYPE,
HTD.VFD_DATE VFD_DATE,
HTH.TRAN_CRE_MODE,
HTH.NUM_CR_TRAN_PSTD,
--HTD.RPT_CODE,
HTD.TRAN_PARTICULAR_CODE RPT_CODE,
HTD.PRNT_ADVC_IND PRNT_ADVC_IND,
''SYSTEM'' Transaction_Channel
FROM
TEMP_TXN_DTL_HTD HTD, '||G_GAM_Table||'' ||
V_DB_Link || ' GAM, '||G_HTH_Table||'' || V_DB_Link || ' HTH
WHERE
HTD.ACID =GAM.ACID
AND HTD.TRAN_DATE = HTH.TRAN_DATE
AND HTD.TRAN_ID = HTH.TRAN_ID
AND HTH.TRAN_DATE =
'||''''||G_Current_Business_Date||''''|| '
AND HTD.TRAN_DATE =
'||''''||G_Current_Business_Date||''''|| '
AND HTD.DEL_FLG =''N''
AND GAM.DEL_FLG =''N'' AND 1=2 ');
ELSIF (G_Manual_Flag = 'N') THEN
EXECUTE IMMEDIATE ('INSERT INTO TRANSCNT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
VISION_GL,TRAN_PARTICULAR ,
TRAN_ID,PART_TRAN_SRL_NUM,
TRAN_CCY,TRAN_TYPE,
TRAN_SUB_TYPE,PART_TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
VALUE_DATE,ACCT_OWNERSHIP,
SCHM_TYPE,PROCESS_OUC,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,REF_NUM,
TRAN_RMKS,ENTRY_USER_ID,
PSTD_USER_ID,VFD_USER_ID,
ENTRY_DATE,DEL_FLG,
PSTD_FLG,INSTRMNT_NUM,
INSTRMNT_TYPE,VFD_DATE,
TRAN_CRE_MODE,NUM_CR_TRAN_PSTD,
RPT_CODE,PRNT_ADVC_IND,Transaction_Channel)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
GAM.FORACID CONTRACT_ID,
HTD.GL_SUB_HEAD_CODE VISION_GL,
HTD.TRAN_PARTICULAR ,
HTD.TRAN_ID,
HTD.PART_TRAN_SRL_NUM,
HTD.TRAN_CRNCY_CODE TRAN_CCY,
HTD.TRAN_TYPE ,
HTD.TRAN_SUB_TYPE ,
HTD.PART_TRAN_TYPE PART_TRAN_TYPE,
HTD.TRAN_AMT, '||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NVL(HTD.VALUE_DATE,'||
''''||G_Current_Business_Date ||''''||')
VALUE_DATE,
GAM.ACCT_OWNERSHIP ,
GAM.SCHM_TYPE SCHM_TYPE,
HTH.INIT_SOL_ID PROCESS_OUC, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
HTD.TRAN_DATE DATE_LAST_MODIFIED,
HTD.TRAN_DATE DATE_CREATION,
HTD.REF_NUM REF_NUM,
HTD.TRAN_RMKS TRAN_RMKS,
HTD.ENTRY_USER_ID ENTRY_USER_ID,
HTD.PSTD_USER_ID PSTD_USER_ID,
HTD.VFD_USER_ID VFD_USER_ID,
HTD.ENTRY_DATE ENTRY_DATE,
HTD.DEL_FLG DEL_FLG,
HTD.PSTD_FLG PSTD_FLG,
HTD.INSTRMNT_NUM INSTRMNT_NUM,
HTD.INSTRMNT_TYPE INSTRMNT_TYPE,
HTD.VFD_DATE VFD_DATE,
HTH.TRAN_CRE_MODE,
HTH.NUM_CR_TRAN_PSTD,
--HTD.RPT_CODE,
HTD.TRAN_PARTICULAR_CODE RPT_CODE,
HTD.PRNT_ADVC_IND PRNT_ADVC_IND,
''SYSTEM'' Transaction_Channel
FROM
TEMP_TXN_DTL_HTD HTD, '||G_GAM_Table||'' ||
V_DB_Link || ' GAM, '||G_HTH_Table||'' || V_DB_Link || ' HTH
WHERE
HTD.ACID =GAM.ACID
AND HTD.TRAN_DATE = HTH.TRAN_DATE
AND HTD.TRAN_ID = HTH.TRAN_ID
AND HTH.TRAN_DATE >
'||''''||G_LastBusinessDateRun||''''|| '
AND HTD.TRAN_DATE >
'||''''||G_LastBusinessDateRun||''''|| '
AND HTD.DEL_FLG =''N''
AND GAM.DEL_FLG =''N'' ');
ELSIF (G_Manual_Flag = 'Y') THEN
EXECUTE IMMEDIATE ('INSERT INTO TRANSCNT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
VISION_GL,TRAN_PARTICULAR ,
TRAN_ID,PART_TRAN_SRL_NUM,
TRAN_CCY,TRAN_TYPE,
TRAN_SUB_TYPE,PART_TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
VALUE_DATE,ACCT_OWNERSHIP,
SCHM_TYPE,PROCESS_OUC,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,REF_NUM,
TRAN_RMKS,ENTRY_USER_ID,
PSTD_USER_ID,VFD_USER_ID,
ENTRY_DATE,DEL_FLG,
PSTD_FLG,INSTRMNT_NUM,
INSTRMNT_TYPE,VFD_DATE,
TRAN_CRE_MODE,NUM_CR_TRAN_PSTD,
RPT_CODE,PRNT_ADVC_IND,Transaction_Channel)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
GAM.FORACID CONTRACT_ID,
HTD.GL_SUB_HEAD_CODE VISION_GL,
HTD.TRAN_PARTICULAR ,
HTD.TRAN_ID,
HTD.PART_TRAN_SRL_NUM,
HTD.TRAN_CRNCY_CODE TRAN_CCY,
HTD.TRAN_TYPE ,
HTD.TRAN_SUB_TYPE ,
HTD.PART_TRAN_TYPE PART_TRAN_TYPE,
HTD.TRAN_AMT, '||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NVL(HTD.VALUE_DATE,'||
''''||G_Current_Business_Date ||''''||')
VALUE_DATE,
GAM.ACCT_OWNERSHIP ,
GAM.SCHM_TYPE SCHM_TYPE,
HTH.INIT_SOL_ID PROCESS_OUC, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
HTD.TRAN_DATE DATE_LAST_MODIFIED,
HTD.TRAN_DATE DATE_CREATION,
HTD.REF_NUM REF_NUM,
HTD.TRAN_RMKS TRAN_RMKS,
HTD.ENTRY_USER_ID ENTRY_USER_ID,
HTD.PSTD_USER_ID PSTD_USER_ID,
HTD.VFD_USER_ID VFD_USER_ID,
HTD.ENTRY_DATE ENTRY_DATE,
HTD.DEL_FLG DEL_FLG,
HTD.PSTD_FLG PSTD_FLG,
HTD.INSTRMNT_NUM INSTRMNT_NUM,
HTD.INSTRMNT_TYPE INSTRMNT_TYPE,
HTD.VFD_DATE VFD_DATE,
HTH.TRAN_CRE_MODE,
HTH.NUM_CR_TRAN_PSTD,
--HTD.RPT_CODE,
HTD.TRAN_PARTICULAR_CODE RPT_CODE,
HTD.PRNT_ADVC_IND PRNT_ADVC_IND,
''SYSTEM'' Transaction_Channel
FROM
TEMP_TXN_DTL_HTD HTD, '||G_GAM_Table||'' ||
V_DB_Link || ' GAM , '||G_HTH_Table||'' || V_DB_Link || ' HTH
WHERE
HTD.ACID =GAM.ACID
AND HTD.TRAN_DATE = HTH.TRAN_DATE
AND HTD.TRAN_ID = HTH.TRAN_ID
AND HTH.TRAN_DATE =
'||''''||G_Current_Business_Date||''''|| '
AND HTD.TRAN_DATE =
'||''''||G_Current_Business_Date||''''|| '
AND HTD.DEL_FLG =''N''
AND GAM.DEL_FLG =''N'' ');
END IF;

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
IF ( G_LastBusinessDateRun = '01-JAN-1900') THEN
writeLogInfo('The Source tables GAM/EAB Does
not exists/not accessiable !! Aborting execution.');
ELSE
writeLogInfo('The Source tables GAM/HTD Does
not exists/not accessiable !! Aborting execution.');
END IF;

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TRANSCNT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getFinancialTranCntStgData;

/*#######################################################################
##################################################
Name : getFinancialTranCntCOTStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[TRANSCNT_COT_FEED_STG].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

/* Below Script Not Required For I */


FUNCTION getFinancialTranCntCOTStgData(P_Country IN VARCHAR2,
P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinancialTranCntCOTStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table TRANSCNT_COT_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO TRANSCNT_COT_FEED_STG (


COUNTRY,LE_BOOK,
TRAN_DATE,TRAN_ID,
PART_TRAN_SRL_NUM,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,'||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
T2.TRAN_ID,
T2.PART_TRAN_SRL_NUM, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
T2.TRAN_DATE DATE_LAST_MODIFIED,
T2.TRAN_DATE DATE_CREATION
FROM
TEMP_TXN_DTL_HTD T2,
CCOTM' || V_DB_Link || ' T3,
GAM' || V_DB_Link || ' T4
WHERE
T2.ACID = T3.ACID
AND T2.ACID = T4.ACID
AND T2.DEL_FLG!= ''Y''
AND T2.PSTD_FLG= ''Y''
AND T2.TRAN_SUB_TYPE NOT IN
(''BI'',''IC'',''SC'',''BS'',''O'')
AND T2.PART_TRAN_TYPE = ''D''
AND ((T2.RCRE_USER_ID != ''CDCI'') OR
(T2.RCRE_USER_ID= ''CDCI''
AND T2.ACID NOT IN (SELECT ACID FROM GAM' ||
V_DB_Link || ' GAM WHERE
SCHM_CODE IN
(''CAPLS'',''STMBK'',''CASTF'',''IATAH'',''IATAS'') AND
GAM.ACID=T2.ACID)))
AND T2.TRAN_DATE =
'||''''||G_Current_Business_Date||''''|| '
AND ((T2.TRAN_PARTICULAR NOT LIKE ''REJECT:%'')
AND (T2.TRAN_PARTICULAR NOT LIKE ''LOAN
RECOVERY FOR%''))
AND NOT EXISTS ( SELECT ''X''
FROM ATD' || V_DB_Link || '
WHERE (TRAN_DATE =
T2.TRAN_DATE
AND TRAN_ID
= T2.TRAN_ID
AND PART_TRAN_SRL_NUM
= T2.PART_TRAN_SRL_NUM)
OR
(CONT_TRAN_DATE =
T2.TRAN_DATE
AND CONT_TRAN_ID
= T2.TRAN_ID
AND
CONT_PART_TRAN_SRL_NUM = T2.PART_TRAN_SRL_NUM)
AND REVERSAL_FLG =
''R'')
UNION
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,'||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
T2.TRAN_ID,
T2.PART_TRAN_SRL_NUM, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
T2.TRAN_DATE DATE_LAST_MODIFIED,
T2.TRAN_DATE DATE_CREATION
FROM
TEMP_TXN_DTL_HTD T2,
GAM' || V_DB_Link || ' T4
WHERE
T2.ACID = T4.ACID
AND T2.DEL_FLG!= ''Y''
AND T2.PSTD_FLG= ''Y''
AND T2.TRAN_SUB_TYPE NOT IN
(''BI'',''IC'',''SC'',''BS'',''O'')
AND T2.PART_TRAN_TYPE = ''D''
AND ((T2.RCRE_USER_ID != ''CDCI'') OR
(T2.RCRE_USER_ID= ''CDCI''
AND T2.ACID NOT IN (SELECT ACID FROM GAM' ||
V_DB_Link || ' GAM WHERE
SCHM_CODE IN
(''CAPLS'',''STMBK'',''CASTF'',''IATAH'',''IATAS'') AND
GAM.ACID=T2.ACID)))
AND T2.TRAN_DATE =
'||''''||G_Current_Business_Date||''''|| '
AND ((T2.TRAN_PARTICULAR NOT LIKE ''REJECT:%'')
AND (T2.TRAN_PARTICULAR NOT LIKE ''LOAN
RECOVERY FOR%''))
AND NOT EXISTS ( SELECT ''X''
FROM ATD' || V_DB_Link || '
WHERE (TRAN_DATE =
T2.TRAN_DATE
AND TRAN_ID
= T2.TRAN_ID
AND PART_TRAN_SRL_NUM
= T2.PART_TRAN_SRL_NUM)
OR
(CONT_TRAN_DATE =
T2.TRAN_DATE
AND CONT_TRAN_ID
= T2.TRAN_ID
AND
CONT_PART_TRAN_SRL_NUM = T2.PART_TRAN_SRL_NUM)
AND REVERSAL_FLG =
''R'')
AND (TRAN_RMKS = ''MASS DD ISSUE'')
AND EXISTS (SELECT ''X'' FROM TEMP_TXN_DTL_HTD H1,
GAM' || V_DB_Link || ' H2 WHERE H1.ACID = H2.ACID AND
TRAN_DATE = T2.TRAN_DATE AND TRAN_ID = T2.TRAN_ID AND
H2.BACID = ''COMMCOT'') ');

IF ( G_LastBusinessDateRun = '01-JAN-1900') THEN


EXECUTE IMMEDIATE ('INSERT INTO TRANSCNT_COT_FEED_STG (
COUNTRY,LE_BOOK,
TRAN_DATE,TRAN_ID,
PART_TRAN_SRL_NUM,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,'||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
T2.TRAN_ID,
T2.PART_TRAN_SRL_NUM, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
T2.TRAN_DATE DATE_LAST_MODIFIED,
T2.TRAN_DATE DATE_CREATION
FROM
TEMP_TXN_DTL_HTD T2,
CCOTM' || V_DB_Link || ' T3,
GAM' || V_DB_Link || ' T4
WHERE
T2.ACID = T3.ACID
AND T2.ACID = T4.ACID
AND T2.DEL_FLG!= ''Y''
AND T2.PSTD_FLG= ''Y''
AND T2.TRAN_SUB_TYPE NOT IN
(''BI'',''IC'',''SC'',''BS'',''O'')
AND T2.PART_TRAN_TYPE = ''D''
AND ((T2.RCRE_USER_ID != ''CDCI'') OR
(T2.RCRE_USER_ID= ''CDCI''
AND T2.ACID NOT IN (SELECT ACID FROM GAM' ||
V_DB_Link || ' GAM WHERE
SCHM_CODE IN
(''CAPLS'',''STMBK'',''CASTF'',''IATAH'',''IATAS'') AND
GAM.ACID=T2.ACID)))
AND T2.TRAN_DATE =
'||''''||G_Current_Business_Date||''''|| '
AND ((T2.TRAN_PARTICULAR NOT LIKE ''REJECT:%'')
AND (T2.TRAN_PARTICULAR NOT LIKE ''LOAN
RECOVERY FOR%''))
AND NOT EXISTS ( SELECT ''X''
FROM ATD' || V_DB_Link || '
WHERE (TRAN_DATE =
T2.TRAN_DATE
AND TRAN_ID
= T2.TRAN_ID
AND PART_TRAN_SRL_NUM
= T2.PART_TRAN_SRL_NUM)
OR
(CONT_TRAN_DATE =
T2.TRAN_DATE
AND CONT_TRAN_ID
= T2.TRAN_ID
AND
CONT_PART_TRAN_SRL_NUM = T2.PART_TRAN_SRL_NUM)
AND REVERSAL_FLG =
''R'') AND 1=2 ' );
ELSIF (G_Manual_Flag = 'N') THEN
EXECUTE IMMEDIATE ('INSERT INTO
TRANSCNT_COT_FEED_STG (
COUNTRY,LE_BOOK,
TRAN_DATE,TRAN_ID,
PART_TRAN_SRL_NUM,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,'||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
T2.TRAN_ID,
T2.PART_TRAN_SRL_NUM, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
T2.TRAN_DATE DATE_LAST_MODIFIED,
T2.TRAN_DATE DATE_CREATION
FROM
TEMP_TXN_DTL_HTD T2,
CCOTM' || V_DB_Link || ' T3,
GAM' || V_DB_Link || ' T4
WHERE
T2.ACID = T3.ACID
AND T2.ACID = T4.ACID
AND T2.DEL_FLG!= ''Y''
AND T2.PSTD_FLG= ''Y''
AND T2.TRAN_SUB_TYPE NOT IN
(''BI'',''IC'',''SC'',''BS'',''O'')
AND T2.PART_TRAN_TYPE = ''D''
AND ((T2.RCRE_USER_ID != ''CDCI'') OR
(T2.RCRE_USER_ID= ''CDCI''
AND T2.ACID NOT IN (SELECT ACID FROM GAM' ||
V_DB_Link || ' GAM WHERE
SCHM_CODE IN
(''CAPLS'',''STMBK'',''CASTF'',''IATAH'',''IATAS'') AND
GAM.ACID=T2.ACID)))
AND T2.TRAN_DATE >
'||''''||G_LastBusinessDateRun||''''|| '
AND ((T2.TRAN_PARTICULAR NOT LIKE ''REJECT:%'')
AND (T2.TRAN_PARTICULAR NOT LIKE ''LOAN
RECOVERY FOR%''))
AND NOT EXISTS ( SELECT ''X''
FROM ATD' || V_DB_Link || '
WHERE (TRAN_DATE =
T2.TRAN_DATE
AND TRAN_ID
= T2.TRAN_ID
AND PART_TRAN_SRL_NUM
= T2.PART_TRAN_SRL_NUM)
OR
(CONT_TRAN_DATE =
T2.TRAN_DATE
AND CONT_TRAN_ID
= T2.TRAN_ID
AND
CONT_PART_TRAN_SRL_NUM = T2.PART_TRAN_SRL_NUM)
AND REVERSAL_FLG =
''R'')
UNION
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,'||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
T2.TRAN_ID,
T2.PART_TRAN_SRL_NUM, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
T2.TRAN_DATE DATE_LAST_MODIFIED,
T2.TRAN_DATE DATE_CREATION
FROM
TEMP_TXN_DTL_HTD T2,
GAM' || V_DB_Link || ' T4
WHERE
T2.ACID = T4.ACID
AND T2.DEL_FLG!= ''Y''
AND T2.PSTD_FLG= ''Y''
AND T2.TRAN_SUB_TYPE NOT IN
(''BI'',''IC'',''SC'',''BS'',''O'')
AND T2.PART_TRAN_TYPE = ''D''
AND ((T2.RCRE_USER_ID != ''CDCI'') OR
(T2.RCRE_USER_ID= ''CDCI''
AND T2.ACID NOT IN (SELECT ACID FROM GAM' ||
V_DB_Link || ' GAM WHERE
SCHM_CODE IN
(''CAPLS'',''STMBK'',''CASTF'',''IATAH'',''IATAS'') AND
GAM.ACID=T2.ACID)))
AND T2.TRAN_DATE >
'||''''||G_LastBusinessDateRun||''''|| '
AND ((T2.TRAN_PARTICULAR NOT LIKE ''REJECT:%'')
AND (T2.TRAN_PARTICULAR NOT LIKE ''LOAN
RECOVERY FOR%''))
AND NOT EXISTS ( SELECT ''X''
FROM ATD' || V_DB_Link || '
WHERE (TRAN_DATE =
T2.TRAN_DATE
AND TRAN_ID
= T2.TRAN_ID
AND PART_TRAN_SRL_NUM
= T2.PART_TRAN_SRL_NUM)
OR
(CONT_TRAN_DATE =
T2.TRAN_DATE
AND CONT_TRAN_ID
= T2.TRAN_ID
AND
CONT_PART_TRAN_SRL_NUM = T2.PART_TRAN_SRL_NUM)
AND REVERSAL_FLG =
''R'')
AND (TRAN_RMKS = ''MASS DD ISSUE'')
AND EXISTS (SELECT ''X'' FROM TEMP_TXN_DTL_HTD H1,
GAM H2 WHERE H1.ACID = H2.ACID AND
TRAN_DATE = T2.TRAN_DATE AND TRAN_ID = T2.TRAN_ID AND
H2.BACID = ''COMMCOT'') ');
ELSIF (G_Manual_Flag = 'Y') THEN
EXECUTE IMMEDIATE ('INSERT INTO
TRANSCNT_COT_FEED_STG (
COUNTRY,LE_BOOK,
TRAN_DATE,TRAN_ID,
PART_TRAN_SRL_NUM,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,'||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
T2.TRAN_ID,
T2.PART_TRAN_SRL_NUM, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
T2.TRAN_DATE DATE_LAST_MODIFIED,
T2.TRAN_DATE DATE_CREATION
FROM
TEMP_TXN_DTL_HTD T2,
CCOTM' || V_DB_Link || ' T3,
GAM' || V_DB_Link || ' T4
WHERE
T2.ACID = T3.ACID
AND T2.ACID = T4.ACID
AND T2.DEL_FLG!= ''Y''
AND T2.PSTD_FLG= ''Y''
AND T2.TRAN_SUB_TYPE NOT IN
(''BI'',''IC'',''SC'',''BS'',''O'')
AND T2.PART_TRAN_TYPE = ''D''
AND ((T2.RCRE_USER_ID != ''CDCI'') OR
(T2.RCRE_USER_ID= ''CDCI''
AND T2.ACID NOT IN (SELECT ACID FROM GAM' ||
V_DB_Link || ' GAM WHERE
SCHM_CODE IN
(''CAPLS'',''STMBK'',''CASTF'',''IATAH'',''IATAS'') AND
GAM.ACID=T2.ACID)))
AND T2.TRAN_DATE =
'||''''||G_Current_Business_Date||''''|| '
AND ((T2.TRAN_PARTICULAR NOT LIKE ''REJECT:%'')
AND (T2.TRAN_PARTICULAR NOT LIKE ''LOAN
RECOVERY FOR%''))
AND NOT EXISTS ( SELECT ''X''
FROM ATD' || V_DB_Link || '
WHERE (TRAN_DATE =
T2.TRAN_DATE
AND TRAN_ID
= T2.TRAN_ID
AND PART_TRAN_SRL_NUM
= T2.PART_TRAN_SRL_NUM)
OR
(CONT_TRAN_DATE =
T2.TRAN_DATE
AND CONT_TRAN_ID
= T2.TRAN_ID
AND
CONT_PART_TRAN_SRL_NUM = T2.PART_TRAN_SRL_NUM)
AND REVERSAL_FLG =
''R'')
UNION
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,'||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
T2.TRAN_ID,
T2.PART_TRAN_SRL_NUM, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
T2.TRAN_DATE DATE_LAST_MODIFIED,
T2.TRAN_DATE DATE_CREATION
FROM
TEMP_TXN_DTL_HTD T2,
GAM' || V_DB_Link || ' T4
WHERE
T2.ACID = T4.ACID
AND T2.DEL_FLG!= ''Y''
AND T2.PSTD_FLG= ''Y''
AND T2.TRAN_SUB_TYPE NOT IN
(''BI'',''IC'',''SC'',''BS'',''O'')
AND T2.PART_TRAN_TYPE = ''D''
AND ((T2.RCRE_USER_ID != ''CDCI'') OR
(T2.RCRE_USER_ID= ''CDCI''
AND T2.ACID NOT IN (SELECT ACID FROM GAM' ||
V_DB_Link || ' GAM WHERE
SCHM_CODE IN
(''CAPLS'',''STMBK'',''CASTF'',''IATAH'',''IATAS'') AND
GAM.ACID=T2.ACID)))
AND T2.TRAN_DATE =
'||''''||G_Current_Business_Date||''''|| '
AND ((T2.TRAN_PARTICULAR NOT LIKE ''REJECT:%'')
AND (T2.TRAN_PARTICULAR NOT LIKE ''LOAN
RECOVERY FOR%''))
AND NOT EXISTS ( SELECT ''X''
FROM ATD' || V_DB_Link || '
WHERE (TRAN_DATE =
T2.TRAN_DATE
AND TRAN_ID
= T2.TRAN_ID
AND PART_TRAN_SRL_NUM
= T2.PART_TRAN_SRL_NUM)
OR
(CONT_TRAN_DATE =
T2.TRAN_DATE
AND CONT_TRAN_ID
= T2.TRAN_ID
AND
CONT_PART_TRAN_SRL_NUM = T2.PART_TRAN_SRL_NUM)
AND REVERSAL_FLG =
''R'')
AND (TRAN_RMKS = ''MASS DD ISSUE'')
AND EXISTS (SELECT ''X'' FROM TEMP_TXN_DTL_HTD H1,
GAM H2 WHERE H1.ACID = H2.ACID AND
TRAN_DATE = T2.TRAN_DATE AND TRAN_ID = T2.TRAN_ID AND
H2.BACID = ''COMMCOT'') ');
END IF;

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables
HTH/HTD/CCOTM/GAM/ATD Does not exists/not accessiable !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TRANSCNT_COT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getFinancialTranCntCOTStgData;

/*#######################################################################
##################################################
Name : getFinacleChargesEnrichStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[FIN_DLY_HEADERS,FIN_DLY_BALANCES].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getFinacleChargesEnrichStgData(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinacleChargesEnrichStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CURRENCY_FEED_STG


population......');

BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'TEMP_STD_CURRENCY_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TEMP_STD_CURRENCY_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN

writeLogInfo ('CREATE TABLE TEMP_STD_CURRENCY_FEED_STG AS


SELECT DISTINCT
FXD_CRNCY_CODE CURRENCY,
Rtlist_Date CCY_DATE,
NVL(decode(FXD_CRNCY_CODE,''ITL'',
var_crncy_units/1000,''JPY'', var_crncy_units/100,''MGA'',
var_crncy_units/100,''KES'', var_crncy_units/100,var_crncy_units),0)
WASH_RATE
FROM
( SELECT r1.rtlist_date , r1.fxd_crncy_code ,
r1.var_crncy_units ,LCHG_TIME,RCRE_TIME
FROM RTL' || V_DB_Link || ' r1
WHERE r1.entity_cre_flg = ''Y''
AND r1.del_flg = ''N''
AND r1.var_crncy_code = ''MUR''
AND r1.ratecode = (SELECT report_rate_code
FROM GCT' || V_DB_Link || ')
AND (fxd_crncy_code,r1.rtlist_num) in
(SELECT fxd_crncy_code,MAX (rtlist_num)
FROM RTL' || V_DB_Link || '
WHERE fxd_crncy_code =
r1.fxd_crncy_code
AND var_crncy_code =
r1.var_crncy_code
AND ratecode = r1.ratecode
AND rtlist_date = r1.rtlist_date
AND entity_cre_flg = ''Y''
AND rtlist_date <= '''||
G_Current_Business_Date ||'''
AND del_flg = ''N''
group by fxd_crncy_code )
UNION ALL
SELECT r1.rtlist_date , r1.fxd_crncy_code ,
r1.var_crncy_units,LCHG_TIME,RCRE_TIME
FROM rth' || V_DB_Link || ' r1
WHERE r1.var_crncy_code = ''MUR''
AND r1.del_flg = ''N''
AND r1.ratecode = (SELECT report_rate_code
FROM gct' || V_DB_Link ||
')
AND r1.rtlist_num =
(SELECT MAX (rtlist_num)
FROM rth' || V_DB_Link || '
WHERE fxd_crncy_code =
r1.fxd_crncy_code
AND var_crncy_code =
r1.var_crncy_code
AND ratecode = r1.ratecode
AND rtlist_date = r1.rtlist_date
AND del_flg = ''N''
and (var_crncy_code, RTLIST_DATE)
IN
(SELECT
VAR_CRNCY_CODE, MAX(RTLIST_DATE) FROM RTH' || V_DB_Link || '
WHERE rtlist_date <= '''||
G_Current_Business_Date ||'''
AND del_flg = ''N''
group by VAR_CRNCY_CODE)))
');

EXECUTE IMMEDIATE ('CREATE TABLE


TEMP_STD_CURRENCY_FEED_STG AS
SELECT DISTINCT
FXD_CRNCY_CODE CURRENCY,
Rtlist_Date CCY_DATE,
NVL(decode(FXD_CRNCY_CODE,''ITL'',
var_crncy_units/1000,''JPY'', var_crncy_units/100,''MGA'',
var_crncy_units/100,''KES'', var_crncy_units/100,var_crncy_units),0)
WASH_RATE
FROM
( SELECT r1.rtlist_date , r1.fxd_crncy_code ,
r1.var_crncy_units ,LCHG_TIME,RCRE_TIME
FROM RTL' || V_DB_Link || ' r1
WHERE r1.entity_cre_flg = ''Y''
AND r1.del_flg = ''N''
AND r1.var_crncy_code = ''MUR''
AND r1.ratecode = (SELECT report_rate_code FROM GCT'
|| V_DB_Link || ')
AND (fxd_crncy_code,r1.rtlist_num) in
(SELECT fxd_crncy_code,MAX (rtlist_num)
FROM RTL' || V_DB_Link || '
WHERE fxd_crncy_code = r1.fxd_crncy_code
AND var_crncy_code = r1.var_crncy_code
AND ratecode = r1.ratecode
AND rtlist_date = r1.rtlist_date
AND entity_cre_flg = ''Y''
AND rtlist_date <= '''||
G_Current_Business_Date ||'''
AND del_flg = ''N''
group by fxd_crncy_code )
UNION ALL
SELECT r1.rtlist_date , r1.fxd_crncy_code ,
r1.var_crncy_units,LCHG_TIME,RCRE_TIME
FROM rth' || V_DB_Link || ' r1
WHERE r1.var_crncy_code = ''MUR''
AND r1.del_flg = ''N''
AND r1.ratecode = (SELECT report_rate_code FROM gct'
|| V_DB_Link || ')
AND r1.rtlist_num = (SELECT MAX (rtlist_num)
FROM rth' || V_DB_Link || '
WHERE fxd_crncy_code =
r1.fxd_crncy_code
AND var_crncy_code =
r1.var_crncy_code
AND ratecode = r1.ratecode
AND rtlist_date =
r1.rtlist_date
AND del_flg = ''N''
and (var_crncy_code,
RTLIST_DATE) IN
(SELECT
VAR_CRNCY_CODE, MAX(RTLIST_DATE)
FROM
RTH' || V_DB_Link || '
WHERE rtlist_date <=
'''|| G_Current_Business_Date ||'''
AND del_flg = ''N''
group by
VAR_CRNCY_CODE))) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables RTL Does not
exists/not accessiable !! Aborting execution.');
closeLogFile;
RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TEMP_STD_CURRENCY_FEED_STG !!');
closeLogFile;
RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'TEMP_TRADE_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TEMP_TRADE_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;
writeLogInfo('Time of current execution obtained from Oracle
is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table TEMP_TRADE_FEED_STG


population......');

BEGIN

IF (G_Manual_Flag = 'N') THEN


EXECUTE IMMEDIATE ('Create Table TEMP_TRADE_FEED_STG AS
Select
event_date
Tran_date,DC_LIAB_TRAN_ID Tran_id
FROM
dcem' || V_DB_Link || ' t2
WHERE event_date >
'||''''||G_LastBusinessDateRun||''''|| '
Union
SELECT event_date
Tran_date,dc_chrg_tran_id Tran_id
FROM dcem' || V_DB_Link || ' t2
WHERE event_date >
'||''''||G_LastBusinessDateRun||''''|| '
Union
SELECT event_date
Tran_date,CONT_LIAB_TRAN_ID Tran_id
FROM BET' || V_DB_Link || ' t2
WHERE event_date >
'||''''||G_LastBusinessDateRun||''''|| '
Union
SELECT
event_date
Tran_date,CHRG_TRAN_ID Tran_id
FROM
BET' || V_DB_Link || ' t2
WHERE event_date >
'||''''||G_LastBusinessDateRun||''''|| '
Union
SELECT
tran_date Tran_date,tran_id
Tran_id
FROM
fae' || V_DB_Link || ' t2,FBM' ||
V_DB_Link || ' T3
WHERE T2.BILL_ID =T3.BILL_ID
AND T3.REG_TYPE NOT IN
(''IWTT'',''OWTT'')
AND tran_date >
'||''''||G_LastBusinessDateRun||''''|| ' ');
ELSIF (G_Manual_Flag = 'Y') THEN
EXECUTE IMMEDIATE ('Create Table TEMP_TRADE_FEED_STG
AS
Select
event_date
Tran_date,DC_LIAB_TRAN_ID Tran_id
FROM
dcem' || V_DB_Link || ' t2
WHERE event_date =
'||''''||G_Current_Business_Date||''''|| '
Union
SELECT event_date
Tran_date,dc_chrg_tran_id Tran_id
FROM dcem' || V_DB_Link || ' t2
WHERE event_date =
'||''''||G_Current_Business_Date||''''|| '
Union
SELECT event_date
Tran_date,CONT_LIAB_TRAN_ID Tran_id
FROM BET' || V_DB_Link || ' t2
WHERE event_date =
'||''''||G_Current_Business_Date||''''|| '
Union
SELECT
event_date
Tran_date,CHRG_TRAN_ID Tran_id
FROM
BET' || V_DB_Link || ' t2
WHERE event_date
='||''''||G_Current_Business_Date||''''|| '
Union
SELECT
tran_date Tran_date,tran_id
Tran_id
FROM
fae' || V_DB_Link || ' t2,FBM' ||
V_DB_Link || ' T3
WHERE T2.BILL_ID =T3.BILL_ID
AND T3.REG_TYPE NOT IN
(''IWTT'',''OWTT'')
AND tran_date =
'||''''||G_Current_Business_Date||''''|| ' ');
END IF;

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TEMP_TRADE_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Create Index on TRADE_FEED_STG ......');


BEGIN
EXECUTE IMMEDIATE ('CREATE INDEX TRADE_FEED_STG_IDX ON
TEMP_TRADE_FEED_STG
(Tran_Date,Tran_id)');

EXCEPTION
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception raised trying to
Create Index TEMP_TRADE_FEED_STG!!');

RETURN ERRONEOUS_EXIT;
END;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');

BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'TMP_TRAN_DT1');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TMP_TRAN_DT1 !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;
writeLogInfo('Beginning staging table TMP_TRAN_DT1
population......');

BEGIN

writeLogInfo ('CREATE TABLE TMP_TRAN_DT1


as SELECT T1.TRAN_AMT
TRAN_AMT_CUST,SOL_ID,t1.TRAN_PARTICULAR,T1.TRAN_DATE,T1.TRAN_ID,
T1.PART_TRAN_TYPE,T1.FORACID,
T1.GL_SUB_HEAD_CODE,T1.SCHM_TYPE,T1.TRAN_CRNCY_CODE,T1.REF_CRNCY_CO
DE
FROM
(SELECT /*+ INDEX_JOIN(t2
TEMP_TXN_DTL_HTD_IDX_3 IDX_GENERAL_ACCT_MAST_TABLE) */
SUM(TRAN_AMT)
TRAN_AMT,TRAN_PARTICULAR,T2.SOL_ID,TRAN_DATE,TRAN_ID,PART_TRAN_TYPE,FORAC
ID,

T2.GL_SUB_HEAD_CODE,T3.SCHM_TYPE,T2.TRAN_CRNCY_CODE,T2.REF_CRNCY_CODE
FROM TEMP_TXN_DTL_HTD
T2,GAM@FINACLEPROD T3,
(SELECT * FROM
GL_CODES WHERE COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW
WHERE
VARIABLE =
''PL_GL_TYPES'')) T4,
(SELECT * FROM GL_CODES
WHERE COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) NOT IN(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW WHERE
VARIABLE =
''PL_GL_TYPES_WITH_BSGL'')) T5,
(SELECT * FROM GL_CODES
WHERE COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) NOT IN(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW WHERE
VARIABLE =
''NON_CPTY_EXP_GL_TYPES'')) T6,
(select * from
gl_translation where COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
=''99''
and
substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t7
where t2.tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T2.GL_SUB_HEAD_CODE
=T7.VISION_GL
And T2.DEL_FLG =''N''
And
T7.MAPPING_SOURCE_VISION_GL = T4.VISION_GL
And
T7.MAPPING_SOURCE_VISION_GL = T6.VISION_GL
And
T7.MAPPING_SOURCE_VISION_GL =T5.Vision_GL
and t2.acid =t3.acid
Group BY
t2.sol_id,tran_date,tran_id,part_tran_type,foracid,t2.GL_SUB_HEAD_CODE,T3
.Schm_type,

T2.TRAN_CRNCY_CODE,T2.REF_CRNCY_CODE,TRAN_PARTICULAR) T1,
(Select /*+ INDEX (T2
TEMP_TXN_DTL_HTD_IDX_5 ) */
sum(tran_amt)
Tran_amt_Cust,T2.Tran_id,T2.tran_date,TRAN_PARTICULAR
From TEMP_TXN_DTL_HTD t2 ,
(SELECT * FROM GL_CODES
WHERE COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) NOT IN(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW

WHERE VARIABLE = ''PL_GL_TYPES_WITH_BSGL'')) T5,


(select * from
gl_translation where COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
=''99''
and
substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t7
WHERE T2.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T2.GL_SUB_HEAD_CODE <>
T7.VISION_GL
And T2.DEL_FLG =''N''
AND T2.CUST_ID IS NOT NULL
AND
T7.MAPPING_SOURCE_VISION_GL =T5.Vision_GL
GROUP BY
T2.TRAN_ID,T2.TRAN_DATE,TRAN_PARTICULAR) T2
WHERE T1.TRAN_ID =T2.TRAN_ID
AND T1.TRAN_DATE
=T2.TRAN_DATE
and t1.TRAN_PARTICULAR
=t2.TRAN_PARTICULAR ');

EXECUTE IMMEDIATE ('CREATE TABLE TMP_TRAN_DT1


as SELECT T1.TRAN_AMT
TRAN_AMT_CUST,SOL_ID,t1.TRAN_PARTICULAR,T1.TRAN_DATE,T1.TRAN_ID,
T1.PART_TRAN_TYPE,T1.FORACID,
T1.GL_SUB_HEAD_CODE,T1.SCHM_TYPE,T1.TRAN_CRNCY_CODE,T1.REF_CRNCY_CO
DE
FROM
(SELECT /*+ INDEX_JOIN(t2
TEMP_TXN_DTL_HTD_IDX_3 IDX_GENERAL_ACCT_MAST_TABLE) */
SUM(TRAN_AMT)
TRAN_AMT,TRAN_PARTICULAR,T2.SOL_ID,TRAN_DATE,TRAN_ID,PART_TRAN_TYPE,FORAC
ID,

T2.GL_SUB_HEAD_CODE,T3.SCHM_TYPE,T2.TRAN_CRNCY_CODE,T2.REF_CRNCY_CODE
FROM TEMP_TXN_DTL_HTD
T2,GAM@FINACLEPROD T3,
(SELECT * FROM
GL_CODES WHERE COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW
WHERE
VARIABLE =
''PL_GL_TYPES'')) T4,
(SELECT * FROM GL_CODES
WHERE COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) NOT IN(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW WHERE
VARIABLE =
''PL_GL_TYPES_WITH_BSGL'')) T5,
(SELECT * FROM GL_CODES
WHERE COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) NOT IN(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW WHERE
VARIABLE =
''NON_CPTY_EXP_GL_TYPES'')) T6,
(select * from
gl_translation where COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
=''99''
and
substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t7
where t2.tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T2.GL_SUB_HEAD_CODE
=T7.VISION_GL
And T2.DEL_FLG =''N''
And
T7.MAPPING_SOURCE_VISION_GL = T4.VISION_GL
And
T7.MAPPING_SOURCE_VISION_GL = T6.VISION_GL
And
T7.MAPPING_SOURCE_VISION_GL =T5.Vision_GL
and t2.acid =t3.acid
Group BY
t2.sol_id,tran_date,tran_id,part_tran_type,foracid,t2.GL_SUB_HEAD_CODE,T3
.Schm_type,

T2.TRAN_CRNCY_CODE,T2.REF_CRNCY_CODE,TRAN_PARTICULAR) T1,
(Select /*+ INDEX (T2
TEMP_TXN_DTL_HTD_IDX_5 ) */
sum(tran_amt)
Tran_amt_Cust,T2.Tran_id,T2.tran_date,TRAN_PARTICULAR
From TEMP_TXN_DTL_HTD t2 ,
(SELECT * FROM GL_CODES
WHERE COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) NOT IN(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW

WHERE VARIABLE = ''PL_GL_TYPES_WITH_BSGL'')) T5,


(select * from
gl_translation where COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
=''99''
and
substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t7
WHERE T2.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T2.GL_SUB_HEAD_CODE <>
T7.VISION_GL
And T2.DEL_FLG =''N''
AND T2.CUST_ID IS NOT NULL
AND
T7.MAPPING_SOURCE_VISION_GL =T5.Vision_GL
GROUP BY
T2.TRAN_ID,T2.TRAN_DATE,TRAN_PARTICULAR) T2
WHERE T1.TRAN_ID =T2.TRAN_ID
AND T1.TRAN_DATE
=T2.TRAN_DATE
and t1.TRAN_PARTICULAR
=t2.TRAN_PARTICULAR ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TMP_TRAN_DT1 !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Create Index on TMP_TRAN_DT1 ......');


BEGIN
EXECUTE IMMEDIATE ('CREATE INDEX TMP_TRAN_DT1_IDX ON
TMP_TRAN_DT1 (TRAN_ID,TRAN_DATE,TRAN_CRNCY_CODE )');

EXCEPTION
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception raised trying to
Create Index TMP_TRAN_DT1!!');

RETURN ERRONEOUS_EXIT;
END;

BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'TMP_TRAN_DT');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TMP_TRAN_DT !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table TMP_TRAN_DT


population......');

BEGIN

writeLogInfo ('CREATE TABLE TMP_TRAN_DT


AS
SELECT /*+ MERGE(T1,T2) */ T1.TRAN_AMT
TRAN_AMT_CUST,SOL_ID,

t1.TRAN_PARTICULAR,T1.TRAN_DATE,T1.TRAN_ID,T1.PART_TRAN_TYPE,T1.FORACID,

T1.GL_SUB_HEAD_CODE,T1.SCHM_TYPE,T1.TRAN_CRNCY_CODE,T1.REF_CRNCY_CODE
FROM
(SELECT /*+ INDEX_JOIN(t2
TEMP_TXN_DTL_HTD_IDX_3 IDX_GENERAL_ACCT_MAST_TABLE) */
SUM(TRAN_AMT)
TRAN_AMT,TRAN_PARTICULAR,T2.SOL_ID,TRAN_DATE,TRAN_ID,PART_TRAN_TYPE,FORAC
ID,

T2.GL_SUB_HEAD_CODE,T3.SCHM_TYPE,T2.TRAN_CRNCY_CODE,T2.REF_CRNCY_CODE
FROM TEMP_TXN_DTL_HTD
T2,GAM@FINACLEPROD T3,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE)
IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW WHERE
VARIABLE =
''PL_GL_TYPES'')) T4,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE) NOT
IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW
WHERE VARIABLE =
''PL_GL_TYPES_WITH_BSGL'')) T5,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE) NOT
IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW
WHERE VARIABLE =
''NON_CPTY_EXP_GL_TYPES'')) T6,
(select * from gl_translation where COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK =''99''
and substr(mapping_source_vision_gl,1,1) in
(''5'',''6'')) t7
where T2.GL_SUB_HEAD_CODE =T7.VISION_GL
And T2.DEL_FLG =''N''
And T7.MAPPING_SOURCE_VISION_GL =
T4.VISION_GL
and T7.MAPPING_SOURCE_VISION_GL =
T6.VISION_GL
AND T7.MAPPING_SOURCE_VISION_GL
=T5.Vision_GL
and t2.acid = t3.acid
AND t2.tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
Group BY
t2.sol_id,tran_date,tran_id,part_tran_type,foracid,t2.GL_SUB_HEAD_CODE,T3
.Schm_type,

T2.TRAN_CRNCY_CODE,T2.REF_CRNCY_CODE,TRAN_PARTICULAR) T1,
(Select /*+ INDEX (T2
TEMP_TXN_DTL_HTD_IDX_5 ) */
sum(tran_amt)
Tran_amt_Cust,T2.Tran_id,T2.tran_date,TRAN_PARTICULAR,TRAN_CRNCY_CODE
From TEMP_TXN_DTL_HTD t2 ,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE) NOT
IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW

WHERE VARIABLE = ''PL_GL_TYPES_WITH_BSGL'')) T5,


(select * from gl_translation where
COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK =''99''
and substr(mapping_source_vision_gl,1,1) in
(''5'',''6'')) t7
WHERE
T2.GL_SUB_HEAD_CODE != T7.VISION_GL
And T2.DEL_FLG =''N''
AND T2.CUST_ID IS NOT NULL
AND T7.MAPPING_SOURCE_VISION_GL
=T5.Vision_GL
AND T2.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
GROUP BY
T2.TRAN_ID,T2.TRAN_DATE,TRAN_PARTICULAR,TRAN_CRNCY_CODE) T2
WHERE T1.TRAN_ID =T2.TRAN_ID
AND T1.TRAN_DATE =T2.TRAN_DATE
and t1.REF_CRNCY_CODE =t2.TRAN_CRNCY_CODE ');

EXECUTE IMMEDIATE (' CREATE TABLE TMP_TRAN_DT


AS
SELECT /*+ MERGE(T1,T2) */ T1.TRAN_AMT
TRAN_AMT_CUST,SOL_ID,

t1.TRAN_PARTICULAR,T1.TRAN_DATE,T1.TRAN_ID,T1.PART_TRAN_TYPE,T1.FORACID,

T1.GL_SUB_HEAD_CODE,T1.SCHM_TYPE,T1.TRAN_CRNCY_CODE,T1.REF_CRNCY_CODE
FROM
(SELECT /*+ INDEX_JOIN(t2
TEMP_TXN_DTL_HTD_IDX_3 IDX_GENERAL_ACCT_MAST_TABLE) */
SUM(TRAN_AMT)
TRAN_AMT,TRAN_PARTICULAR,T2.SOL_ID,TRAN_DATE,TRAN_ID,PART_TRAN_TYPE,FORAC
ID,

T2.GL_SUB_HEAD_CODE,T3.SCHM_TYPE,T2.TRAN_CRNCY_CODE,T2.REF_CRNCY_CODE
FROM TEMP_TXN_DTL_HTD
T2,GAM@FINACLEPROD T3,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE)
IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW WHERE
VARIABLE =
''PL_GL_TYPES'')) T4,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE) NOT
IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW
WHERE VARIABLE =
''PL_GL_TYPES_WITH_BSGL'')) T5,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE) NOT
IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW
WHERE VARIABLE =
''NON_CPTY_EXP_GL_TYPES'')) T6,
(select * from gl_translation where COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK =''99''
and substr(mapping_source_vision_gl,1,1) in
(''5'',''6'')) t7
where T2.GL_SUB_HEAD_CODE =T7.VISION_GL
And T2.DEL_FLG =''N''
And T7.MAPPING_SOURCE_VISION_GL =
T4.VISION_GL
and T7.MAPPING_SOURCE_VISION_GL =
T6.VISION_GL
AND T7.MAPPING_SOURCE_VISION_GL
=T5.Vision_GL
and t2.acid = t3.acid
AND t2.tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
Group BY
t2.sol_id,tran_date,tran_id,part_tran_type,foracid,t2.GL_SUB_HEAD_CODE,T3
.Schm_type,

T2.TRAN_CRNCY_CODE,T2.REF_CRNCY_CODE,TRAN_PARTICULAR) T1,
(Select /*+ INDEX (T2
TEMP_TXN_DTL_HTD_IDX_5 ) */
sum(tran_amt)
Tran_amt_Cust,T2.Tran_id,T2.tran_date,TRAN_PARTICULAR,TRAN_CRNCY_CODE
From TEMP_TXN_DTL_HTD t2 ,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE) NOT
IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW

WHERE VARIABLE = ''PL_GL_TYPES_WITH_BSGL'')) T5,


(select * from gl_translation where
COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK =''99''
and substr(mapping_source_vision_gl,1,1) in
(''5'',''6'')) t7
WHERE
T2.GL_SUB_HEAD_CODE != T7.VISION_GL
And T2.DEL_FLG =''N''
AND T2.CUST_ID IS NOT NULL
AND T7.MAPPING_SOURCE_VISION_GL
=T5.Vision_GL
AND T2.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
GROUP BY
T2.TRAN_ID,T2.TRAN_DATE,TRAN_PARTICULAR,TRAN_CRNCY_CODE) T2
WHERE T1.TRAN_ID =T2.TRAN_ID
AND T1.TRAN_DATE =T2.TRAN_DATE
and t1.REF_CRNCY_CODE =t2.TRAN_CRNCY_CODE ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TMP_TRAN_DT !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Create Index on TMP_TRAN_DT ......');


BEGIN
EXECUTE IMMEDIATE ('CREATE INDEX TMP_TRAN_DT_IDX ON
TMP_TRAN_DT (tran_id,tran_date,TRAN_CRNCY_CODE )');

EXCEPTION
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception raised trying to
Create Index TMP_TRAN_DT1!!');

RETURN ERRONEOUS_EXIT;
END;

BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'TMP_TRAN_DT5');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TMP_TRAN_DT5 !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table TMP_TRAN_DT5


population......');

BEGIN

writeLogInfo ('CREATE TABLE TMP_TRAN_DT5


AS
SELECT DISTINCT
T1.TRAN_AMT
TRAN_AMT_CUST,SOL_ID,t1.TRAN_PARTICULAR,T1.TRAN_DATE,T1.TRAN_ID,T1.PART_T
RAN_TYPE,T1.FORACID,

T1.GL_SUB_HEAD_CODE,T1.SCHM_TYPE,T1.TRAN_CRNCY_CODE,T1.REF_CRNCY_CODE
FROM
(SELECT
SUM(TRAN_AMT)
TRAN_AMT,TRAN_PARTICULAR,T2.SOL_ID,TRAN_DATE,TRAN_ID,PART_TRAN_TYPE,FORAC
ID,

T2.GL_SUB_HEAD_CODE,T3.SCHM_TYPE,T2.TRAN_CRNCY_CODE,T2.REF_CRNCY_CODE
FROM TEMP_TXN_DTL_HTD T2,GAM' ||
V_DB_Link || ' T3,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE)
IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW WHERE VARIABLE =
''PL_GL_TYPES'')) T4,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE) NOT
IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW WHERE VARIABLE =
''PL_GL_TYPES_WITH_BSGL'')) T5,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE) NOT
IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW WHERE VARIABLE =
''NON_CPTY_EXP_GL_TYPES'')) T6,
(select * from gl_translation where
substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t7
where t2.tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T2.GL_SUB_HEAD_CODE =T7.VISION_GL
And T2.DEL_FLG =''N''
And T7.MAPPING_SOURCE_VISION_GL =
T4.VISION_GL
and T7.MAPPING_SOURCE_VISION_GL =
T6.VISION_GL
AND T7.MAPPING_SOURCE_VISION_GL
=T5.Vision_GL
and t2.acid = t3.acid
Group BY
t2.sol_id,tran_date,tran_id,part_tran_type,foracid,t2.GL_SUB_HEAD_CODE,T3
.Schm_type,

T2.TRAN_CRNCY_CODE,T2.REF_CRNCY_CODE,TRAN_PARTICULAR) T1,
(Select
sum(tran_amt)
Tran_amt_Cust,T2.Tran_id,T2.tran_date,TRAN_PARTICULAR,TRAN_CRNCY_CODE
From TEMP_TXN_DTL_HTD t2 ,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE)
NOT IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW
WHERE VARIABLE =
''PL_GL_TYPES_WITH_BSGL'')) T5,
(select * from gl_translation where
substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t7
WHERE T2.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T2.GL_SUB_HEAD_CODE != T7.VISION_GL
And T2.DEL_FLG =''N''
AND T2.CUST_ID IS NOT NULL
AND T7.MAPPING_SOURCE_VISION_GL
=T5.Vision_GL
GROUP BY
T2.TRAN_ID,T2.TRAN_DATE,TRAN_PARTICULAR,TRAN_CRNCY_CODE ) T2
WHERE T1.TRAN_ID =T2.TRAN_ID
AND T1.TRAN_DATE
=T2.TRAN_DATE
and t1.REF_CRNCY_CODE
=t2.TRAN_CRNCY_CODE ');

EXECUTE IMMEDIATE ('CREATE TABLE TMP_TRAN_DT5


AS
SELECT DISTINCT
T1.TRAN_AMT
TRAN_AMT_CUST,SOL_ID,t1.TRAN_PARTICULAR,T1.TRAN_DATE,T1.TRAN_ID,T1.PART_T
RAN_TYPE,T1.FORACID,

T1.GL_SUB_HEAD_CODE,T1.SCHM_TYPE,T1.TRAN_CRNCY_CODE,T1.REF_CRNCY_CODE
FROM
(SELECT
SUM(TRAN_AMT)
TRAN_AMT,TRAN_PARTICULAR,T2.SOL_ID,TRAN_DATE,TRAN_ID,PART_TRAN_TYPE,FORAC
ID,

T2.GL_SUB_HEAD_CODE,T3.SCHM_TYPE,T2.TRAN_CRNCY_CODE,T2.REF_CRNCY_CODE
FROM TEMP_TXN_DTL_HTD T2,GAM' ||
V_DB_Link || ' T3,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE)
IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW WHERE VARIABLE =
''PL_GL_TYPES'')) T4,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE) NOT
IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW WHERE VARIABLE =
''PL_GL_TYPES_WITH_BSGL'')) T5,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE) NOT
IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW WHERE VARIABLE =
''NON_CPTY_EXP_GL_TYPES'')) T6,
(select * from gl_translation where
substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t7
where t2.tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T2.GL_SUB_HEAD_CODE =T7.VISION_GL
And T2.DEL_FLG =''N''
And T7.MAPPING_SOURCE_VISION_GL =
T4.VISION_GL
and T7.MAPPING_SOURCE_VISION_GL =
T6.VISION_GL
AND T7.MAPPING_SOURCE_VISION_GL
=T5.Vision_GL
and t2.acid = t3.acid
Group BY
t2.sol_id,tran_date,tran_id,part_tran_type,foracid,t2.GL_SUB_HEAD_CODE,T3
.Schm_type,

T2.TRAN_CRNCY_CODE,T2.REF_CRNCY_CODE,TRAN_PARTICULAR) T1,
(Select
sum(tran_amt)
Tran_amt_Cust,T2.Tran_id,T2.tran_date,TRAN_PARTICULAR,TRAN_CRNCY_CODE
From TEMP_TXN_DTL_HTD t2 ,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE)
NOT IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW
WHERE VARIABLE =
''PL_GL_TYPES_WITH_BSGL'')) T5,
(select * from gl_translation where
substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t7
WHERE T2.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T2.GL_SUB_HEAD_CODE != T7.VISION_GL
And T2.DEL_FLG =''N''
AND T2.CUST_ID IS NOT NULL
AND T7.MAPPING_SOURCE_VISION_GL
=T5.Vision_GL
GROUP BY
T2.TRAN_ID,T2.TRAN_DATE,TRAN_PARTICULAR,TRAN_CRNCY_CODE ) T2
WHERE T1.TRAN_ID =T2.TRAN_ID
AND T1.TRAN_DATE
=T2.TRAN_DATE
and t1.REF_CRNCY_CODE
=t2.TRAN_CRNCY_CODE ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TMP_TRAN_DT5 !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Create Index on TMP_TRAN_DT5 ......');


BEGIN
EXECUTE IMMEDIATE ('CREATE INDEX TMP_TRAN_DT5_IDX ON
TMP_TRAN_DT5 (tran_id,tran_date,REF_CRNCY_CODE )');

EXCEPTION
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception raised trying to
Create Index TMP_TRAN_DT5!!');

RETURN ERRONEOUS_EXIT;
END;

/* BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'TMP_TRAN_DT6');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TMP_TRAN_DT6 !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table TMP_TRAN_DT6


population......');

BEGIN

writeLogInfo ('CREATE TABLE TMP_TRAN_DT6


AS
Select
sum(tran_amt)
Tran_amt_Cust,T2.Tran_id,T2.tran_date,TRAN_PARTICULAR,TRAN_CRNCY_CODE
From TEMP_TXN_DTL_HTD t2 ,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE)
NOT IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW
WHERE VARIABLE =
''PL_GL_TYPES_WITH_BSGL'')) T5,
(select * from gl_translation where
substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t7
WHERE T2.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T2.GL_SUB_HEAD_CODE != T7.VISION_GL
And T2.DEL_FLG =''N''
AND T2.CUST_ID IS NOT NULL
AND T7.MAPPING_SOURCE_VISION_GL
=T5.Vision_GL
GROUP BY
T2.TRAN_ID,T2.TRAN_DATE,TRAN_PARTICULAR,TRAN_CRNCY_CODE ');

EXECUTE IMMEDIATE ('CREATE TABLE TMP_TRAN_DT6


AS
Select
sum(tran_amt)
Tran_amt_Cust,T2.Tran_id,T2.tran_date,TRAN_PARTICULAR,TRAN_CRNCY_CODE
From TEMP_TXN_DTL_HTD t2 ,
(SELECT * FROM GL_CODES WHERE COUNTRY
='||''''||P_Country||'''' ||' AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TO_CHAR(GL_TYPE)
NOT IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW
WHERE VARIABLE =
''PL_GL_TYPES_WITH_BSGL'')) T5,
(select * from gl_translation where
substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t7
WHERE T2.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T2.GL_SUB_HEAD_CODE != T7.VISION_GL
And T2.DEL_FLG =''N''
AND T2.CUST_ID IS NOT NULL
AND T7.MAPPING_SOURCE_VISION_GL
=T5.Vision_GL
GROUP BY
T2.TRAN_ID,T2.TRAN_DATE,TRAN_PARTICULAR,TRAN_CRNCY_CODE ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TMP_TRAN_DT6 !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Create Index on TMP_TRAN_DT6 ......');


BEGIN
EXECUTE IMMEDIATE ('CREATE INDEX TMP_TRAN_DT6_IDX ON
TMP_TRAN_DT6 (tran_id,tran_date,TRAN_CRNCY_CODE )');

EXCEPTION
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception raised trying to
Create Index TMP_TRAN_DT6!!');

RETURN ERRONEOUS_EXIT;
END; */

updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG


population......');

BEGIN

writeLogInfo ('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY ,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
VALUE_DATE,SCHM_TYPE,
TRAN_ID,MIS_CURRENCY,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
selecT * from (
Select distinct
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(T3.Cust_id) Customer_Id,
t3.foracid Contract_id,
t1.foracid Office_account,
t1.GL_SUB_HEAD_CODE Vision_GL,
T2.Sol_id Vision_ouc,
''NA'' Cost_center,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
T1.Part_Tran_type,
round(TRAN_AMT_CUST * NVL(WASH_RATE,1),2) TRAN_AMT_CUST
,
t2.tran_date,
t2.tran_date Value_Date,
T1.Schm_type,
T1.Tran_id,
T1.REF_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||' Feed_date,
'||''''||G_Feed_Name||''''||' Product,
''N'' Run_Status,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,3
FROM (
SELECT
T1.TRAN_AMT
TRAN_AMT_CUST,SOL_ID,t1.TRAN_PARTICULAR,T1.TRAN_DATE,T1.TRAN_ID,T1.PART_T
RAN_TYPE,T1.FORACID,

T1.GL_SUB_HEAD_CODE,T1.SCHM_TYPE,T1.TRAN_CRNCY_CODE,T1.REF_CRNCY_CODE
FROM
(SELECT
SUM(TRAN_AMT)
TRAN_AMT,TRAN_PARTICULAR,T2.SOL_ID,TRAN_DATE,TRAN_ID,PART_TRAN_TYPE,FORAC
ID,

T2.GL_SUB_HEAD_CODE,T3.SCHM_TYPE,T2.TRAN_CRNCY_CODE,T2.REF_CRNCY_CODE
FROM TEMP_TXN_DTL_HTD
T2,GAM' || V_DB_Link || ' T3,
(SELECT * FROM GL_CODES
WHERE COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW
WHERE VARIABLE = ''PL_GL_TYPES'')) T4,
(SELECT * FROM GL_CODES
WHERE COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) NOT IN(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW WHERE VARIABLE = ''PL_GL_TYPES_WITH_BSGL'')) T5,
(SELECT * FROM GL_CODES
WHERE COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) NOT IN(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW WHERE VARIABLE = ''NON_CPTY_EXP_GL_TYPES'')) T6,
(select * from
gl_translation where substr(mapping_source_vision_gl,1,1) in
(''5'',''6'')) t7
where t2.tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T2.GL_SUB_HEAD_CODE
=T7.VISION_GL
And T2.DEL_FLG =''N''
And
T7.MAPPING_SOURCE_VISION_GL = T4.VISION_GL
And
T7.MAPPING_SOURCE_VISION_GL = T6.VISION_GL
And
T7.MAPPING_SOURCE_VISION_GL =T5.Vision_GL
and t2.acid =t3.acid
Group BY
t2.sol_id,tran_date,tran_id,part_tran_type,foracid,t2.GL_SUB_HEAD_CODE,T3
.Schm_type,

T2.TRAN_CRNCY_CODE,T2.REF_CRNCY_CODE,TRAN_PARTICULAR) T1,
(Select
sum(tran_amt)
Tran_amt_Cust,T2.Tran_id,T2.tran_date,TRAN_PARTICULAR
From TEMP_TXN_DTL_HTD t2 ,
(SELECT * FROM GL_CODES
WHERE COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) NOT IN(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW

WHERE VARIABLE = ''PL_GL_TYPES_WITH_BSGL'')) T5,


(select * from
gl_translation where substr(mapping_source_vision_gl,1,1) in
(''5'',''6'')) t7
WHERE T2.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T2.GL_SUB_HEAD_CODE <>
T7.VISION_GL
And T2.DEL_FLG =''N''
AND T2.CUST_ID IS NOT NULL
AND
T7.MAPPING_SOURCE_VISION_GL =T5.Vision_GL
GROUP BY
T2.TRAN_ID,T2.TRAN_DATE,TRAN_PARTICULAR) T2
WHERE T1.TRAN_ID =T2.TRAN_ID
AND T1.TRAN_DATE =T2.TRAN_DATE
and t1.TRAN_PARTICULAR
=t2.TRAN_PARTICULAR ) T1,
TEMP_TXN_DTL_HTD t2 ,GAM' ||
V_DB_Link || ' t3 ,CEM' || V_DB_Link || ',TEMP_STD_CURRENCY_FEED_STG t5
where t2.acid =t3.acid
and t3.cust_id =CEM.cust_id(+)
And t2.tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t2.cust_id is not null
and T3.ACCT_OWNERSHIP !=''O''
and t1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and
t1.TRAN_CRNCY_CODE=t5.currency(+)
and t1.TRAN_PARTICULAR
=t2.TRAN_PARTICULAR
and exists
(select ''x'' from
(select distinct cust_id
from TEMP_TXN_DTL_HTD where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'')
and cust_id is not null
group by cust_id
having count(distinct cust_id)
=1) t4
where t3.cust_id =t4.cust_id)
and not exists
(select ''x'' from
(select count(distinct cust_id)
,tran_id,tran_date
from TEMP_TXN_DTL_HTD T2
where tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and T2.cust_id is not null
group by tran_id,tran_date
having count(distinct cust_id)
>1 ) t2
where t1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
)
union
Select distinct
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(T3.Cust_id) Customer_Id,
t3.foracid Contract_id,
t1.foracid Office_account,
t1.GL_SUB_HEAD_CODE Vision_GL,
T2.Sol_id Vision_ouc,
''NA'' Cost_center,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
T1.Part_Tran_type,
round(TRAN_AMT_CUST * NVL(WASH_RATE,1),2)
TRAN_AMT_CUST ,
t2.tran_date,
t2.tran_date Value_Date,
T1.Schm_type,
T1.Tran_id,
T1.REF_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||' Feed_date,
'||''''||G_Feed_Name||''''||' Product,
''N'' Run_Status,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,3
FROM (
SELECT * FROM TMP_TRAN_DT5) T1,
TEMP_TXN_DTL_HTD t2 ,GAM' || V_DB_Link || ' t3
,CEM' || V_DB_Link || ',
TEMP_STD_CURRENCY_FEED_STG
t5
where t2.acid =t3.acid
and t3.cust_id
=CEM.cust_id(+)
And t2.tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t2.cust_id is not null
and T3.ACCT_OWNERSHIP
!=''O''
and t1.tran_id =t2.tran_id
and t1.tran_date
=t2.tran_date
and t1.TRAN_CRNCY_CODE= t2.TRAN_CRNCY_CODE
and t1.TRAN_CRNCY_CODE= t5.CURRENCY (+)
and exists
(select ''x'' from
(select distinct cust_id
from TEMP_TXN_DTL_HTD where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'')
and cust_id is not null
group by cust_id
having count(distinct cust_id)
=1) t4
where t3.cust_id =t4.cust_id)
and not exists
(select ''x'' from
(select count(distinct cust_id)
,tran_id,tran_date
from TEMP_TXN_DTL_HTD T2
where tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and T2.cust_id is not null
group by tran_id,tran_date
having count(distinct cust_id)
>1 ) t2
where t1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date) )
T1
Where Not exists (select ''x'' from
ENRICHMENT_FEED_STG t2
where COUNTRY
='||''''||P_Country||'''' ||'
AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND FEED_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t1.country
=t2.country
and t1.le_book
=t2.le_book
and t1.feed_date
=t2.feed_date
And t1.tran_id
=t2.tran_id )
and NOT EXISTS (
SELECT ''x'' From
TEMP_TRADE_FEED_STG T3
Where t1.tran_date =
t3.tran_date
AND t1.tran_id = t3.tran_id)
');
EXECUTE IMMEDIATE ('INSERT INTO ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY ,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
VALUE_DATE,SCHM_TYPE,
TRAN_ID,MIS_CURRENCY,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
selecT * from (
Select distinct
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(T3.Cust_id) Customer_Id,
t3.foracid Contract_id,
t1.foracid Office_account,
t1.GL_SUB_HEAD_CODE Vision_GL,
T2.Sol_id Vision_ouc,
''NA'' Cost_center,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
T1.Part_Tran_type,
round(TRAN_AMT_CUST * NVL(WASH_RATE,1),2) TRAN_AMT_CUST
,
t2.tran_date,
t2.tran_date Value_Date,
T1.Schm_type,
T1.Tran_id,
T1.REF_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||' Feed_date,
'||''''||G_Feed_Name||''''||' Product,
''N'' Run_Status,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,3
FROM (
SELECT
T1.TRAN_AMT
TRAN_AMT_CUST,SOL_ID,t1.TRAN_PARTICULAR,T1.TRAN_DATE,T1.TRAN_ID,T1.PART_T
RAN_TYPE,T1.FORACID,

T1.GL_SUB_HEAD_CODE,T1.SCHM_TYPE,T1.TRAN_CRNCY_CODE,T1.REF_CRNCY_CODE
FROM
(SELECT
SUM(TRAN_AMT)
TRAN_AMT,TRAN_PARTICULAR,T2.SOL_ID,TRAN_DATE,TRAN_ID,PART_TRAN_TYPE,FORAC
ID,

T2.GL_SUB_HEAD_CODE,T3.SCHM_TYPE,T2.TRAN_CRNCY_CODE,T2.REF_CRNCY_CODE
FROM TEMP_TXN_DTL_HTD
T2,GAM' || V_DB_Link || ' T3,
(SELECT * FROM GL_CODES
WHERE COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) IN(SELECT RETURN_VALUE_INT FROM VISION_VARIABLES_NARROW
WHERE VARIABLE = ''PL_GL_TYPES'')) T4,
(SELECT * FROM GL_CODES
WHERE COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) NOT IN(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW WHERE VARIABLE = ''PL_GL_TYPES_WITH_BSGL'')) T5,
(SELECT * FROM GL_CODES
WHERE COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) NOT IN(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW WHERE VARIABLE = ''NON_CPTY_EXP_GL_TYPES'')) T6,
(select * from
gl_translation where substr(mapping_source_vision_gl,1,1) in
(''5'',''6'')) t7
where t2.tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T2.GL_SUB_HEAD_CODE
=T7.VISION_GL
And T2.DEL_FLG =''N''
And
T7.MAPPING_SOURCE_VISION_GL = T4.VISION_GL
And
T7.MAPPING_SOURCE_VISION_GL = T6.VISION_GL
And
T7.MAPPING_SOURCE_VISION_GL =T5.Vision_GL
and t2.acid =t3.acid
Group BY
t2.sol_id,tran_date,tran_id,part_tran_type,foracid,t2.GL_SUB_HEAD_CODE,T3
.Schm_type,

T2.TRAN_CRNCY_CODE,T2.REF_CRNCY_CODE,TRAN_PARTICULAR) T1,
(Select
sum(tran_amt)
Tran_amt_Cust,T2.Tran_id,T2.tran_date,TRAN_PARTICULAR
From TEMP_TXN_DTL_HTD t2 ,
(SELECT * FROM GL_CODES
WHERE COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) NOT IN(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW

WHERE VARIABLE = ''PL_GL_TYPES_WITH_BSGL'')) T5,


(select * from
gl_translation where substr(mapping_source_vision_gl,1,1) in
(''5'',''6'')) t7
WHERE T2.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T2.GL_SUB_HEAD_CODE <>
T7.VISION_GL
And T2.DEL_FLG =''N''
AND T2.CUST_ID IS NOT NULL
AND
T7.MAPPING_SOURCE_VISION_GL =T5.Vision_GL
GROUP BY
T2.TRAN_ID,T2.TRAN_DATE,TRAN_PARTICULAR) T2
WHERE T1.TRAN_ID =T2.TRAN_ID
AND T1.TRAN_DATE =T2.TRAN_DATE
and t1.TRAN_PARTICULAR
=t2.TRAN_PARTICULAR ) T1,
TEMP_TXN_DTL_HTD t2 ,GAM' ||
V_DB_Link || ' t3 ,CEM' || V_DB_Link || ',TEMP_STD_CURRENCY_FEED_STG t5
where t2.acid =t3.acid
and t3.cust_id =CEM.cust_id(+)
And t2.tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t2.cust_id is not null
and T3.ACCT_OWNERSHIP !=''O''
and t1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and
t1.TRAN_CRNCY_CODE=t5.currency(+)
and t1.TRAN_PARTICULAR
=t2.TRAN_PARTICULAR
and exists
(select ''x'' from
(select distinct cust_id
from TEMP_TXN_DTL_HTD where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'')
and cust_id is not null
group by cust_id
having count(distinct cust_id)
=1) t4
where t3.cust_id =t4.cust_id)
and not exists
(select ''x'' from
(select count(distinct cust_id)
,tran_id,tran_date
from TEMP_TXN_DTL_HTD T2
where tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and T2.cust_id is not null
group by tran_id,tran_date
having count(distinct cust_id)
>1 ) t2
where t1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
)
union
Select distinct
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(T3.Cust_id) Customer_Id,
t3.foracid Contract_id,
t1.foracid Office_account,
t1.GL_SUB_HEAD_CODE Vision_GL,
T2.Sol_id Vision_ouc,
''NA'' Cost_center,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
T1.Part_Tran_type,
round(TRAN_AMT_CUST * NVL(WASH_RATE,1),2)
TRAN_AMT_CUST ,
t2.tran_date,
t2.tran_date Value_Date,
T1.Schm_type,
T1.Tran_id,
T1.REF_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||' Feed_date,
'||''''||G_Feed_Name||''''||' Product,
''N'' Run_Status,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,3
FROM (
SELECT * FROM TMP_TRAN_DT5) T1,
TEMP_TXN_DTL_HTD t2 ,GAM' || V_DB_Link || ' t3
,CEM' || V_DB_Link || ',
TEMP_STD_CURRENCY_FEED_STG
t5
where t2.acid =t3.acid
and t3.cust_id
=CEM.cust_id(+)
And t2.tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t2.cust_id is not null
and T3.ACCT_OWNERSHIP
!=''O''
and t1.tran_id =t2.tran_id
and t1.tran_date
=t2.tran_date
and t1.TRAN_CRNCY_CODE= t2.TRAN_CRNCY_CODE
and t1.TRAN_CRNCY_CODE= t5.CURRENCY (+)
and exists
(select ''x'' from
(select distinct cust_id
from TEMP_TXN_DTL_HTD where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'')
and cust_id is not null
group by cust_id
having count(distinct cust_id)
=1) t4
where t3.cust_id =t4.cust_id)
and not exists
(select ''x'' from
(select count(distinct cust_id)
,tran_id,tran_date
from TEMP_TXN_DTL_HTD T2
where tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and T2.cust_id is not null
group by tran_id,tran_date
having count(distinct cust_id)
>1 ) t2
where t1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date) )
T1
Where Not exists (select ''x'' from
ENRICHMENT_FEED_STG t2
where COUNTRY
='||''''||P_Country||'''' ||'
AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND FEED_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t1.country
=t2.country
and t1.le_book
=t2.le_book
and t1.feed_date
=t2.feed_date
And t1.tran_id
=t2.tran_id )
and NOT EXISTS (
SELECT ''x'' From
TEMP_TRADE_FEED_STG T3
Where t1.tran_date =
t3.tran_date
AND t1.tran_id = t3.tran_id)
');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/CXL/HTD Does
not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate ENRICHMENT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG


population. For STANDING FEES.....');

BEGIN

writeLogInfo ('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY ,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
VALUE_DATE,SCHM_TYPE,
TRAN_ID,MIS_CURRENCY,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
Select /*+ index (t1 TMP_TRAN_DT1_IDX) */ distinct
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(T3.Cust_id) Customer_Id,
t3.foracid Contract_id,
t1.foracid Office_account,
t1.GL_SUB_HEAD_CODE Vision_GL,
T2.Sol_id Vision_ouc,
''NA'' Cost_center,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
T1.Part_Tran_type,
round(TRAN_AMT_CUST * nvl((select distinct WASH_RATE
from TEMP_STD_CURRENCY_FEED_STG where currency=t1.TRAN_CRNCY_CODE),1),2 )
TRAN_AMT_CUST,
t2.tran_date,
t2.tran_date Value_Date,
T1.Schm_type,
T1.Tran_id,
T1.REF_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||' Feed_date,
'||''''||G_Feed_Name||''''||' Product,
''N'' Run_Status,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,6 query_no
FROM tmp_tran_dt1 T1,TEMP_TXN_DTL_HTD t2 ,GAM' ||
V_DB_Link || ' t3 ,CEM' || V_DB_Link || '
where t2.acid =t3.acid
and t3.cust_id
=CEM.cust_id(+)
And t2.tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t2.cust_id is not null
and T3.ACCT_OWNERSHIP
!=''O''
and t1.tran_id =t2.tran_id
and t1.tran_date
=t2.tran_date
and t1.TRAN_PARTICULAR
=t2.TRAN_PARTICULAR
and Not exists (select ''x'' from
ENRICHMENT_FEED_STG X1
where COUNTRY
='||''''||P_Country||'''' ||'
AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND FEED_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and X1.feed_date
=t2.tran_date
And X1.tran_id
=t2.tran_id )
and NOT EXISTS (
SELECT ''x'' From
TEMP_TRADE_FEED_STG Z3
Where t2.tran_date =
Z3.tran_date
AND t2.tran_id = Z3.tran_id)
and exists (select ''x'' FROM
enrichment_missing_TRANS_STG z1 WHERE
z1.TRAN_DATE=T2.TRAN_DATE
AND Z1.TRAN_ID=T2.TRAN_ID AND
Z1.TRAN_AMT_LCY =
t2.TRAN_AMT AND Z1.RUN_STATUS=''N'')
and exists
(select ''x'' from
(select distinct cust_id
from TEMP_TXN_DTL_HTD where
tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and cust_id is not null
group by cust_id
having count(distinct cust_id)
=1) X4
where t3.cust_id =X4.cust_id)
and not exists
(select ''x'' from
(select count(distinct cust_id)
,tran_id,tran_date
from TEMP_TXN_DTL_HTD Z2
where tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and Z2.cust_id is not null
group by tran_id,tran_date
having count(distinct cust_id)
>1 ) X2
where t1.tran_id =X2.tran_id
and t1.tran_date =X2.tran_date)
union
Select /*+index (t1,TMP_TRAN_DT_IDX) */
distinct
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(T3.Cust_id) Customer_Id,
t3.foracid Contract_id,
t1.foracid Office_account,
t1.GL_SUB_HEAD_CODE Vision_GL,
T2.Sol_id Vision_ouc,
''NA'' Cost_center,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
T1.Part_Tran_type,
round(TRAN_AMT_CUST * nvl((select distinct WASH_RATE
from TEMP_STD_CURRENCY_FEED_STG where currency=t1.TRAN_CRNCY_CODE),1),2 )
TRAN_AMT_CUST,
t2.tran_date,
t2.tran_date Value_Date,
T1.Schm_type,
T1.Tran_id,
T1.REF_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||' Feed_date,
'||''''||G_Feed_Name||''''||' Product,
''N'' Run_Status,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,6 query_no
FROM tmp_tran_dt T1,TEMP_TXN_DTL_HTD t2 ,GAM' ||
V_DB_Link || ' t3 ,CEM' || V_DB_Link || '
where t2.acid =t3.acid
and t3.cust_id
=CEM.cust_id(+)
And t2.tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t2.cust_id is not null
and T3.ACCT_OWNERSHIP
!=''O''
and t1.tran_id =t2.tran_id
and t1.tran_date
=t2.tran_date
and t1.TRAN_CRNCY_CODE= t2.TRAN_CRNCY_CODE
and Not exists (select ''x'' from ENRICHMENT_FEED_STG
t1
where COUNTRY
='||''''||P_Country||'''' ||'
AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND FEED_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t1.feed_date
=t2.TRAN_DATE
And t1.tran_id
=t2.tran_id )
and NOT EXISTS (
SELECT ''x'' From
TEMP_TRADE_FEED_STG T3
Where t2.tran_date =
t3.tran_date
AND t2.tran_id = t3.tran_id
)
and exists (select ''x'' FROM
enrichment_missing_TRANS_STG z1 WHERE
z1.TRAN_DATE=T2.TRAN_DATE
AND Z1.TRAN_ID=T2.TRAN_ID AND
Z1.TRAN_AMT_LCY =
t2.TRAN_AMT AND Z1.RUN_STATUS=''N'')
and exists
(select ''x'' from
(select distinct cust_id
from TEMP_TXN_DTL_HTD where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'')
and cust_id is not null
group by cust_id
having count(distinct cust_id)
=1) t4
where t3.cust_id =t4.cust_id)
and not exists
(select ''x'' from
(select count(distinct cust_id)
,tran_id,tran_date
from TEMP_TXN_DTL_HTD T2
where tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and T2.cust_id is not null
group by tran_id,tran_date
having count(distinct cust_id)
>1 ) t2
where t1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date)
');

EXECUTE IMMEDIATE ('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY ,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
VALUE_DATE,SCHM_TYPE,
TRAN_ID,MIS_CURRENCY,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
Select /*+ index (t1 TMP_TRAN_DT1_IDX) */ distinct
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(T3.Cust_id) Customer_Id,
t3.foracid Contract_id,
t1.foracid Office_account,
t1.GL_SUB_HEAD_CODE Vision_GL,
T2.Sol_id Vision_ouc,
''NA'' Cost_center,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
T1.Part_Tran_type,
round(TRAN_AMT_CUST * nvl((select distinct WASH_RATE
from TEMP_STD_CURRENCY_FEED_STG where currency=t1.TRAN_CRNCY_CODE),1),2 )
TRAN_AMT_CUST,
t2.tran_date,
t2.tran_date Value_Date,
T1.Schm_type,
T1.Tran_id,
T1.REF_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||' Feed_date,
'||''''||G_Feed_Name||''''||' Product,
''N'' Run_Status,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,6 query_no
FROM tmp_tran_dt1 T1,TEMP_TXN_DTL_HTD t2 ,GAM' ||
V_DB_Link || ' t3 ,CEM' || V_DB_Link || '
where t2.acid =t3.acid
and t3.cust_id
=CEM.cust_id(+)
And t2.tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t2.cust_id is not null
and T3.ACCT_OWNERSHIP
!=''O''
and t1.tran_id =t2.tran_id
and t1.tran_date
=t2.tran_date
and t1.TRAN_PARTICULAR
=t2.TRAN_PARTICULAR
and Not exists (select ''x'' from
ENRICHMENT_FEED_STG X1
where COUNTRY
='||''''||P_Country||'''' ||'
AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND FEED_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and X1.feed_date
=t2.tran_date
And X1.tran_id
=t2.tran_id )
and NOT EXISTS (
SELECT ''x'' From
TEMP_TRADE_FEED_STG Z3
Where t2.tran_date =
Z3.tran_date
AND t2.tran_id = Z3.tran_id)
and exists (select ''x'' FROM
enrichment_missing_TRANS_STG z1 WHERE
z1.TRAN_DATE=T2.TRAN_DATE
AND Z1.TRAN_ID=T2.TRAN_ID AND
Z1.TRAN_AMT_LCY =
t2.TRAN_AMT AND Z1.RUN_STATUS=''N'')
and exists
(select ''x'' from
(select distinct cust_id
from TEMP_TXN_DTL_HTD where
tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and cust_id is not null
group by cust_id
having count(distinct cust_id)
=1) X4
where t3.cust_id =X4.cust_id)
and not exists
(select ''x'' from
(select count(distinct cust_id)
,tran_id,tran_date
from TEMP_TXN_DTL_HTD Z2
where tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and Z2.cust_id is not null
group by tran_id,tran_date
having count(distinct cust_id)
>1 ) X2
where t1.tran_id =X2.tran_id
and t1.tran_date =X2.tran_date)
union
Select /*+index (t1,TMP_TRAN_DT_IDX) */
distinct
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(T3.Cust_id) Customer_Id,
t3.foracid Contract_id,
t1.foracid Office_account,
t1.GL_SUB_HEAD_CODE Vision_GL,
T2.Sol_id Vision_ouc,
''NA'' Cost_center,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
T1.Part_Tran_type,
round(TRAN_AMT_CUST * nvl((select distinct WASH_RATE
from TEMP_STD_CURRENCY_FEED_STG where currency=t1.TRAN_CRNCY_CODE),1),2 )
TRAN_AMT_CUST,
t2.tran_date,
t2.tran_date Value_Date,
T1.Schm_type,
T1.Tran_id,
T1.REF_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||' Feed_date,
'||''''||G_Feed_Name||''''||' Product,
''N'' Run_Status,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,6 query_no
FROM tmp_tran_dt T1,TEMP_TXN_DTL_HTD t2 ,GAM' ||
V_DB_Link || ' t3 ,CEM' || V_DB_Link || '
where t2.acid =t3.acid
and t3.cust_id
=CEM.cust_id(+)
And t2.tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t2.cust_id is not null
and T3.ACCT_OWNERSHIP
!=''O''
and t1.tran_id =t2.tran_id
and t1.tran_date
=t2.tran_date
and t1.TRAN_CRNCY_CODE= t2.TRAN_CRNCY_CODE
and Not exists (select ''x'' from ENRICHMENT_FEED_STG
t1
where COUNTRY
='||''''||P_Country||'''' ||'
AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND FEED_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t1.feed_date
=t2.TRAN_DATE
And t1.tran_id
=t2.tran_id )
and NOT EXISTS (
SELECT ''x'' From
TEMP_TRADE_FEED_STG T3
Where t2.tran_date =
t3.tran_date
AND t2.tran_id = t3.tran_id
)
and exists (select ''x'' FROM
enrichment_missing_TRANS_STG z1 WHERE
z1.TRAN_DATE=T2.TRAN_DATE
AND Z1.TRAN_ID=T2.TRAN_ID AND
Z1.TRAN_AMT_LCY =
t2.TRAN_AMT AND Z1.RUN_STATUS=''N'')
and exists
(select ''x'' from
(select distinct cust_id
from TEMP_TXN_DTL_HTD where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'')
and cust_id is not null
group by cust_id
having count(distinct cust_id)
=1) t4
where t3.cust_id =t4.cust_id)
and not exists
(select ''x'' from
(select count(distinct cust_id)
,tran_id,tran_date
from TEMP_TXN_DTL_HTD T2
where tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and T2.cust_id is not null
group by tran_id,tran_date
having count(distinct cust_id)
>1 ) t2
where t1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date)
');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/CXL/HTD Does
not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate ENRICHMENT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getFinacleChargesEnrichStgData;
/*#######################################################################
##################################################
Name : getFinacleIntAmtEnrichStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[FIN_DLY_HEADERS,FIN_DLY_BALANCES].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getFinacleIntAmtEnrichStgData(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinacleIntAmtEnrichStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG


population......');

BEGIN

writeLogInfo ('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(CUSTOMER_ID) CUSTOMER_ID,
TRIM(FORACID) CONTRACT_ID,
OFFICE_ACCOUNT OFFICE_ACCOUNT,
gl_sub_head_code VISION_GL,
SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
part_tran_type TRAN_TYPE,
round(tran_amt * NVL(WASH_RATE,1),2)
TRAN_AMT,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') TRAN_DATE,
TRAN_ID,
acct_crncy_code MIS_CURRENCY,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,4
From (
select t1.sol_id,t5.foracid
office_account,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,t4.cust_i
d
customer_id,tran_amt,part_tran_type,t4.SCHM_TYPE,TRAN_ID,t1.gl_sub_head_c
ode,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || ' t5
where t1.gl_sub_head_code =vision_gl
and tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and
Trim(substr(tran_particular,instr(tran_particular,''['')+1,instr(tran_par
ticular,'']'')-3 ))= t4.foracid
and t1.acid =t5.acid
and tran_particular like ''%Book
Interest%''
union all
select t1.sol_id,t5.foracid
office_account,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,t4.cust_i
d customer_id,tran_amt,part_tran_type,t4.SCHM_TYPE,
TRAN_ID,t1.gl_sub_head_code,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || ' t5
where t1.gl_sub_head_code =vision_gl
and tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and
Trim(substr(tran_particular,instr(tran_particular,''^'')+1,instr(tran_par
ticular,''^'',2)-2))= t4.foracid
and t1.acid =t5.acid
and tran_particular like ''%:Book
Adj.Pd:%''
union all
select
t1.sol_id,t5.foracid,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,t4.
cust_id customer_id,tran_amt,part_tran_type,t4.SCHM_TYPE,TRAN_ID,
t1.gl_sub_head_code,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || ' t5
where t1.gl_sub_head_code =vision_gl
and tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and
Trim(substr(tran_particular,instr(tran_particular,''^'')+1,instr(tran_par
ticular,''^'',2)-2 ))= t4.foracid
and t1.acid =t5.acid
and tran_particular like ''%Int.Coll:%''
union all
select
t1.sol_id,t5.foracid,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,t4.
cust_id
customer_id,tran_amt,part_tran_type,t4.SCHM_TYPE,TRAN_ID,t1.gl_sub_head_c
ode,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || ' t5
where t1.gl_sub_head_code =vision_gl
and tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and
Trim(substr(tran_particular,instr(tran_particular,''A/C:'')+4,15 )) =
t4.foracid
and t1.acid =t5.acid
and tran_particular like ''%SOL xfr for
A/C:%''
union all
select

t1.sol_id,t5.foracid,t1.TRAN_CRNCY_CODE,t1.ref_crncy_code,t4.bill_id,t4.P
ARTY_CODE customer_id,tran_amt,part_tran_type,''FBA''
SCHM_TYPE,TRAN_ID,t1.gl_sub_head_code,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, fbm' || V_DB_Link || ' t4,
gam' || V_DB_Link || ' t5
where t1.gl_sub_head_code =vision_gl
and tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and
Trim(substr(tran_particular,instr(tran_particular,''['')+1,instr(tran_par
ticular,'']'')-22 )) = t4.bill_id
and t1.acid =t5.acid
and tran_particular like ''%Amort
Interest for%''
union all
select
t1.sol_id,t5.foracid,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,t4.
cust_id
customer_id,tran_amt,part_tran_type,t4.SCHM_TYPE,TRAN_ID,t1.gl_sub_head_c
ode,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || ' t5
where t1.gl_sub_head_code =vision_gl
and tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and
Trim(substr(tran_particular,instr(tran_particular,''FEE A/C:'')+8,22 )) =
t4.foracid
and t1.acid =t5.acid
and tran_particular like ''%FEE A/C:%''
UNION ALL
select
t1.sol_id,t5.foracid,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,t4.
cust_id
customer_id,tran_amt,part_tran_type,t4.SCHM_TYPE,TRAN_ID,t1.gl_sub_head_c
ode,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || ' t5
where t1.gl_sub_head_code =vision_gl
and tRAN_DATE =
'||''''||G_Current_Business_Date ||''''||'
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and
Trim(substr(tran_particular,instr(tran_particular,''LOAN
CHARGE/'')+12,instr(tran_particular,''/MISC'')-13)) = t4.foracid
and t1.acid =t5.acid
and tran_particular like ''%LOAN
CHARGE/%''
UNION ALL
select t1.sol_id,t5.foracid
office_account,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,t4.cust_i
d
customer_id,tran_amt,part_tran_type,t4.SCHM_TYPE,TRAN_ID,t1.gl_sub_head_c
ode,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || ' t5
where t1.gl_sub_head_code =vision_gl
and tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and Trim(tran_particular)= t4.foracid
and t1.acid =t5.acid
union all
select t1.sol_id,t5.foracid
office_account,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,
t4.cust_id
customer_id,t1.tran_amt,t1.part_tran_type,t4.SCHM_TYPE,t1.TRAN_ID,t1.gl_s
ub_head_code,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || '
t5,TEMP_TXN_DTL_HTD t6
where t1.gl_sub_head_code =vision_gl
and t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.tran_amt=t1.tran_amt
and t6.acid= t4.acid
and Trim(t1.tran_particular) like ''%COMM
ON TRF%''
and t1.acid =t5.acid
and t6.cust_id is not null
UNION ALL
select t1.sol_id,t5.foracid
office_account,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,
t4.cust_id
customer_id,t1.tran_amt,t1.part_tran_type,t4.SCHM_TYPE,t1.TRAN_ID,t1.gl_s
ub_head_code,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || '
t5,TEMP_TXN_DTL_HTD t6
where t1.gl_sub_head_code =vision_gl
and t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.tran_particular=t1.tran_particular
and t6.acid= t4.acid
and Trim(t1.ref_num) =''EEC''
and t1.acid =t5.acid
and t6.cust_id is not null
union all
select t1.sol_id,t5.foracid
office_account,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,
t4.cust_id
customer_id,t1.tran_amt,t1.part_tran_type,t4.SCHM_TYPE,t1.TRAN_ID,t1.gl_s
ub_head_code,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || '
t5,TEMP_TXN_DTL_HTD t6
where t1.gl_sub_head_code =vision_gl
and t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.acid= t4.acid
and t6.part_tran_type=''D''
and Trim(t1.TRAN_PARTICULAR_2)
=Trim(t6.TRAN_PARTICULAR_2)
and t1.acid =t5.acid
and t6.cust_id is not null
) t1, TEMP_STD_CURRENCY_FEED_STG t2
where t1.tran_crncy_code=t2.currency(+)
and NOT EXISTS (
SELECT ''x'' From
TEMP_TRADE_FEED_STG T3
WHERE T1.TRAN_DATE =
T3.TRAN_DATE
AND T1.TRAN_ID = T3.TRAN_ID)
and Not exists (select ''x'' from
ENRICHMENT_FEED_STG t3
where COUNTRY
='||''''||P_Country||'''' ||'
AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND FEED_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t1.TRAN_DATE
=t3.feed_date
And t2.tran_id
=t3.tran_id ) ');

EXECUTE IMMEDIATE ('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(CUSTOMER_ID) CUSTOMER_ID,
TRIM(FORACID) CONTRACT_ID,
OFFICE_ACCOUNT OFFICE_ACCOUNT,
gl_sub_head_code VISION_GL,
SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
part_tran_type TRAN_TYPE,
round(tran_amt * NVL(WASH_RATE,1),2)
TRAN_AMT,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') TRAN_DATE,
TRAN_ID,
acct_crncy_code MIS_CURRENCY,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,4
From (
select t1.sol_id,t5.foracid
office_account,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,t4.cust_i
d
customer_id,tran_amt,part_tran_type,t4.SCHM_TYPE,TRAN_ID,t1.gl_sub_head_c
ode,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || ' t5
where t1.gl_sub_head_code =vision_gl
and tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and
Trim(substr(tran_particular,instr(tran_particular,''['')+1,instr(tran_par
ticular,'']'')-3 ))= t4.foracid
and t1.acid =t5.acid
and tran_particular like ''%Book
Interest%''
union all
select t1.sol_id,t5.foracid
office_account,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,t4.cust_i
d customer_id,tran_amt,part_tran_type,t4.SCHM_TYPE,
TRAN_ID,t1.gl_sub_head_code,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || ' t5
where t1.gl_sub_head_code =vision_gl
and tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and
Trim(substr(tran_particular,instr(tran_particular,''^'')+1,instr(tran_par
ticular,''^'',2)-2))= t4.foracid
and t1.acid =t5.acid
and tran_particular like ''%:Book
Adj.Pd:%''
union all
select
t1.sol_id,t5.foracid,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,t4.
cust_id customer_id,tran_amt,part_tran_type,t4.SCHM_TYPE,TRAN_ID,
t1.gl_sub_head_code,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || ' t5
where t1.gl_sub_head_code =vision_gl
and tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and
Trim(substr(tran_particular,instr(tran_particular,''^'')+1,instr(tran_par
ticular,''^'',2)-2 ))= t4.foracid
and t1.acid =t5.acid
and tran_particular like ''%Int.Coll:%''
union all
select
t1.sol_id,t5.foracid,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,t4.
cust_id
customer_id,tran_amt,part_tran_type,t4.SCHM_TYPE,TRAN_ID,t1.gl_sub_head_c
ode,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || ' t5
where t1.gl_sub_head_code =vision_gl
and tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and
Trim(substr(tran_particular,instr(tran_particular,''A/C:'')+4,15 )) =
t4.foracid
and t1.acid =t5.acid
and tran_particular like ''%SOL xfr for
A/C:%''
union all
select

t1.sol_id,t5.foracid,t1.TRAN_CRNCY_CODE,t1.ref_crncy_code,t4.bill_id,t4.P
ARTY_CODE customer_id,tran_amt,part_tran_type,''FBA''
SCHM_TYPE,TRAN_ID,t1.gl_sub_head_code,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, fbm' || V_DB_Link || ' t4,
gam' || V_DB_Link || ' t5
where t1.gl_sub_head_code =vision_gl
and tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and
Trim(substr(tran_particular,instr(tran_particular,''['')+1,instr(tran_par
ticular,'']'')-22 )) = t4.bill_id
and t1.acid =t5.acid
and tran_particular like ''%Amort
Interest for%''
union all
select
t1.sol_id,t5.foracid,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,t4.
cust_id
customer_id,tran_amt,part_tran_type,t4.SCHM_TYPE,TRAN_ID,t1.gl_sub_head_c
ode,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || ' t5
where t1.gl_sub_head_code =vision_gl
and tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and
Trim(substr(tran_particular,instr(tran_particular,''FEE A/C:'')+8,22 )) =
t4.foracid
and t1.acid =t5.acid
and tran_particular like ''%FEE A/C:%''
UNION ALL
select
t1.sol_id,t5.foracid,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,t4.
cust_id
customer_id,tran_amt,part_tran_type,t4.SCHM_TYPE,TRAN_ID,t1.gl_sub_head_c
ode,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || ' t5
where t1.gl_sub_head_code =vision_gl
and tRAN_DATE =
'||''''||G_Current_Business_Date ||''''||'
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and
Trim(substr(tran_particular,instr(tran_particular,''LOAN
CHARGE/'')+12,instr(tran_particular,''/MISC'')-13)) = t4.foracid
and t1.acid =t5.acid
and tran_particular like ''%LOAN
CHARGE/%''
UNION ALL
select t1.sol_id,t5.foracid
office_account,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,t4.cust_i
d
customer_id,tran_amt,part_tran_type,t4.SCHM_TYPE,TRAN_ID,t1.gl_sub_head_c
ode,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || ' t5
where t1.gl_sub_head_code =vision_gl
and tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and Trim(tran_particular)= t4.foracid
and t1.acid =t5.acid
union all
select t1.sol_id,t5.foracid
office_account,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,
t4.cust_id
customer_id,t1.tran_amt,t1.part_tran_type,t4.SCHM_TYPE,t1.TRAN_ID,t1.gl_s
ub_head_code,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || '
t5,TEMP_TXN_DTL_HTD t6
where t1.gl_sub_head_code =vision_gl
and t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.tran_amt=t1.tran_amt
and t6.acid= t4.acid
and Trim(t1.tran_particular) like ''%COMM
ON TRF%''
and t1.acid =t5.acid
and t6.cust_id is not null
UNION ALL
select t1.sol_id,t5.foracid
office_account,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,
t4.cust_id
customer_id,t1.tran_amt,t1.part_tran_type,t4.SCHM_TYPE,t1.TRAN_ID,t1.gl_s
ub_head_code,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || '
t5,TEMP_TXN_DTL_HTD t6
where t1.gl_sub_head_code =vision_gl
and t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.tran_particular=t1.tran_particular
and t6.acid= t4.acid
and Trim(t1.ref_num) =''EEC''
and t1.acid =t5.acid
and t6.cust_id is not null
union all
select t1.sol_id,t5.foracid
office_account,t1.TRAN_CRNCY_CODE,t4.acct_crncy_code,t4.foracid,
t4.cust_id
customer_id,t1.tran_amt,t1.part_tran_type,t4.SCHM_TYPE,t1.TRAN_ID,t1.gl_s
ub_head_code,t1.tran_date
from TEMP_TXN_DTL_HTD t1, gl_translation
t2 ,le_book t3, gam' || V_DB_Link || ' t4, gam' || V_DB_Link || '
t5,TEMP_TXN_DTL_HTD t6
where t1.gl_sub_head_code =vision_gl
and t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and mapping_source_vision_gl between
pl_gl_start and pl_gl_end
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.acid= t4.acid
and t6.part_tran_type=''D''
and Trim(t1.TRAN_PARTICULAR_2)
=Trim(t6.TRAN_PARTICULAR_2)
and t1.acid =t5.acid
and t6.cust_id is not null
) t1, TEMP_STD_CURRENCY_FEED_STG t2
where t1.tran_crncy_code=t2.currency(+)
and NOT EXISTS (
SELECT ''x'' From
TEMP_TRADE_FEED_STG T3
WHERE T1.TRAN_DATE =
T3.TRAN_DATE
AND T1.TRAN_ID = T3.TRAN_ID)
and Not exists (select ''x'' from
ENRICHMENT_FEED_STG t3
where COUNTRY
='||''''||P_Country||'''' ||'
AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND FEED_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t1.TRAN_DATE
=t3.feed_date
And t1.tran_id
=t3.tran_id ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/CXL/HTD Does
not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate ENRICHMENT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getFinacleIntAmtEnrichStgData;

/*#######################################################################
##################################################
Name : getFinacMissIntChgEnrhStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[FIN_DLY_HEADERS,FIN_DLY_BALANCES].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/
FUNCTION getFinacMissIntChgEnrhStgData(P_Country IN VARCHAR2,
P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinacMissIntChgEnrhStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Delete For Int .....');

BEGIN

writeLogInfo ('DELETE FROM ENRICHMENT_FEED_STG T1


WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND PRODUCT
in('||''''||G_Feed_Name||''''||','||''''||G_Feed_Name||''''||')
AND RUN_STATUS =''N''
AND (T1.TRAN_ID,T1.TRAN_DATE) IN
(SELECT T1.TRAN_ID,T1.TRAN_DATE FROM
(SELECT round(SUM(TRAN_AMT),2)
TRAN_AMT,TRAN_ID,TRAN_DATE
FROM
ENRICHMENT_FEED_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
WHERE COUNTRY ='||''''||P_Country||''''
||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
and t1.tran_ccy= t5.currency(+)
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND PRODUCT
in('||''''||G_Feed_Name||''''||','||''''||G_Feed_Name||''''||')
AND RUN_STATUS =''N''
GROUP BY TRAN_ID,TRAN_DATE) T1,
(select round(SUM(TRAN_AMT *
NVL(WASH_RATE,1)),2) TRAN_AMT,TRAN_ID,TRAN_DATE FROM TEMP_TXN_DTL_HTD
T1,
TEMP_STD_CURRENCY_FEED_STG t5,
(SELECT * FROM GL_CODES
WHERE
COUNTRY ='||''''||P_Country||'''' ||'
AND
LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) NOT IN
(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW WHERE VARIABLE = ''NON_CPTY_EXP_GL_TYPES'')) T2,
(select * from gl_translation
where substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t7
WHERE T1.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND GL_SUB_HEAD_CODE = T7.VISION_GL
and t1.tran_crncy_code=
t5.currency(+)
AND T7.mapping_source_vision_gl
=T2.Vision_GL
GROUP BY TRAN_ID,TRAN_DATE ) T2
WHERE T1.TRAN_ID = T2.TRAN_ID
AND T1.TRAN_DATE = T2.TRAN_DATE
AND T1.TRAN_AMT != T2.TRAN_AMT) ');

EXECUTE IMMEDIATE ('DELETE FROM ENRICHMENT_FEED_STG


T1
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND PRODUCT
in('||''''||G_Feed_Name||''''||','||''''||G_Feed_Name||''''||')
AND RUN_STATUS =''N''
AND (T1.TRAN_ID,T1.TRAN_DATE) IN
(SELECT T1.TRAN_ID,T1.TRAN_DATE FROM
(SELECT round(SUM(TRAN_AMT *
NVL(WASH_RATE,1)),2) TRAN_AMT,TRAN_ID,TRAN_DATE
FROM
ENRICHMENT_FEED_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
WHERE COUNTRY ='||''''||P_Country||''''
||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
and t1.tran_ccy= t5.currency(+)
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND PRODUCT
in('||''''||G_Feed_Name||''''||','||''''||G_Feed_Name||''''||')
AND RUN_STATUS =''N''
GROUP BY TRAN_ID,TRAN_DATE) T1,
(select round(SUM(TRAN_AMT *
NVL(WASH_RATE,1)),2) TRAN_AMT,TRAN_ID,TRAN_DATE FROM TEMP_TXN_DTL_HTD
T1,
TEMP_STD_CURRENCY_FEED_STG t5,
(SELECT * FROM GL_CODES
WHERE
COUNTRY ='||''''||P_Country||'''' ||'
AND
LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND
TO_CHAR(GL_TYPE) NOT IN
(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW WHERE VARIABLE = ''NON_CPTY_EXP_GL_TYPES'')) T2,
(select * from gl_translation
where substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t7
WHERE T1.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND GL_SUB_HEAD_CODE = T7.VISION_GL
and t1.tran_crncy_code=
t5.currency(+)
AND T7.mapping_source_vision_gl
=T2.Vision_GL
GROUP BY TRAN_ID,TRAN_DATE ) T2
WHERE T1.TRAN_ID = T2.TRAN_ID
AND T1.TRAN_DATE = T2.TRAN_DATE
AND T1.TRAN_AMT != T2.TRAN_AMT) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table 3 has already
been dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception 3 raised
trying to Delete ENRICHMENT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Beginning staging table TRADEPRD_FEED_STG


Delete For Trade Products......');

BEGIN

writeLogInfo ('DELETE FROM TRADEPRD_FEED_STG T1


WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND PRODUCT
in(''BGENRICH'',''BILLSENRICH'',''LCENRICH'')
AND VISION_GL in (select distinct vision_gl from
gl_translation where substr(mapping_source_vision_gl,1,1) in
(''5'',''6''))
AND RUN_STATUS =''N''
AND (T1.TRAN_ID,T1.TRAN_DATE) IN
(SELECT T1.TRAN_ID,T1.TRAN_DATE FROM
(SELECT SUM(TRAN_AMT)
TRAN_AMT,TRAN_ID,TRAN_DATE
FROM
TRADEPRD_FEED_STG
WHERE COUNTRY ='||''''||P_Country||''''
||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND PRODUCT
in(''BGENRICH'',''BILLSENRICH'',''LCENRICH'')
AND VISION_GL in (select distinct
vision_gl from gl_translation where substr(mapping_source_vision_gl,1,1)
in (''5'',''6''))
AND RUN_STATUS =''N''
GROUP BY TRAN_ID,TRAN_DATE) T1,
(SELECT SUM(TRAN_AMT)
TRAN_AMT,TRAN_ID,TRAN_DATE FROM TEMP_TXN_DTL_HTD T1,
(SELECT * FROM GL_CODES
WHERE
COUNTRY ='||''''||P_Country||'''' ||'
AND
LE_BOOK =''99''
AND
TO_CHAR(GL_TYPE) NOT IN
(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW WHERE VARIABLE = ''NON_CPTY_EXP_GL_TYPES'')) T2
WHERE T1.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND GL_SUB_HEAD_CODE in (select
distinct vision_gl from gl_translation where
substr(mapping_source_vision_gl,1,1) in (''5'',''6''))
AND T1.GL_SUB_HEAD_CODE =
T2.VISION_GL
GROUP BY TRAN_ID,TRAN_DATE ) T2
WHERE T1.TRAN_ID = T2.TRAN_ID
AND T1.TRAN_DATE = T2.TRAN_DATE
AND T1.TRAN_AMT != T2.TRAN_AMT)');

EXECUTE IMMEDIATE ('DELETE FROM TRADEPRD_FEED_STG


T1
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND PRODUCT
in(''BGENRICH'',''BILLSENRICH'',''LCENRICH'')
AND VISION_GL in (select distinct vision_gl from
gl_translation where substr(mapping_source_vision_gl,1,1) in
(''5'',''6''))
AND RUN_STATUS =''N''
AND (T1.TRAN_ID,T1.TRAN_DATE) IN
(SELECT T1.TRAN_ID,T1.TRAN_DATE FROM
(SELECT SUM(TRAN_AMT)
TRAN_AMT,TRAN_ID,TRAN_DATE
FROM
TRADEPRD_FEED_STG
WHERE COUNTRY ='||''''||P_Country||''''
||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND PRODUCT
in(''BGENRICH'',''BILLSENRICH'',''LCENRICH'')
AND VISION_GL in (select distinct
vision_gl from gl_translation where substr(mapping_source_vision_gl,1,1)
in (''5'',''6''))
AND RUN_STATUS =''N''
GROUP BY TRAN_ID,TRAN_DATE) T1,
(SELECT SUM(TRAN_AMT)
TRAN_AMT,TRAN_ID,TRAN_DATE FROM TEMP_TXN_DTL_HTD T1,
(SELECT * FROM GL_CODES
WHERE
COUNTRY ='||''''||P_Country||'''' ||'
AND
LE_BOOK =''99''
AND
TO_CHAR(GL_TYPE) NOT IN
(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW WHERE VARIABLE = ''NON_CPTY_EXP_GL_TYPES'')) T2
WHERE T1.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND GL_SUB_HEAD_CODE in (select
distinct vision_gl from gl_translation where
substr(mapping_source_vision_gl,1,1) in (''5'',''6''))
AND T1.GL_SUB_HEAD_CODE =
T2.VISION_GL
GROUP BY TRAN_ID,TRAN_DATE ) T2
WHERE T1.TRAN_ID = T2.TRAN_ID
AND T1.TRAN_DATE = T2.TRAN_DATE
AND T1.TRAN_AMT != T2.TRAN_AMT)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table 3 has already
been dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception 3 raised
trying to Delete ENRICHMENT_FEED_STG For Trade Products !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Time of current execution obtained 3 from


Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table


ENRICHMENT_MISSING_TRANS_STG population..For Int ...');

BEGIN

writeLogInfo ('INSERT INTO ENRICHMENT_MISSING_TRANS_STG (


COUNTRY, LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,TRAN_DATE,
TRAN_ID,PART_TRAN_SRL_NUM,
VISION_GL,TRAN_CCY ,
MIS_CURRENCY,
TRAN_TYPE,VALUE_DATE,
TRAN_AMT_LCY,TRAN_PARTICULAR,
FEED_DATE,PRODUCT,

RUN_STATUS,SOL_ID,ACID,ENTRY_USER_ID,PSTD_USER_ID,VFD_USER_ID,REF_NUM,TRA
N_RMKS,TRAN_PARTICULAR_2)
SELECT '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
NVL(TRIM(T1.CUST_ID),''D000'')
CUSTOMER_ID,
''0'' CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
TRAN_ID,
PART_TRAN_SRL_NUM,
T1.GL_SUB_HEAD_CODE VISION_GL,
T1.TRAN_CRNCY_CODE TRAN_CCY ,
T1.REF_CRNCY_CODE MIS_CURRENCY,
PART_TRAN_TYPE TRAN_TYPE,

NVL(VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


TRAN_AMT TRAN_AMT,
TRAN_PARTICULAR,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||'
PRODUCT,
''N''
RUN_STATUS,T1.SOL_ID,T1.ACID,T1.ENTRY_USER_ID,T1.PSTD_USER_ID,T1.VFD_USER
_ID,
REF_NUM,TRAN_RMKS, TRAN_PARTICULAR_2
from TEMP_TXN_DTL_HTD T1,GAM' ||
V_DB_Link || ' T3 ,
(SELECT * FROM GL_CODES WHERE
COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK =''99''
AND
TO_CHAR(GL_TYPE) NOT IN(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW
WHERE
VARIABLE = ''NON_CPTY_EXP_GL_TYPES'')) T2,
(select * from gl_translation
where substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) T7
where T1.Acid = T3.Acid
And tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T1.GL_SUB_HEAD_CODE =T7.vision_GL
And T1.DEL_FLG =''N''
And T1.GL_SUB_HEAD_CODE =
T2.VISION_GL
and Not EXISTS (
SELECT ''x'' From
TRADEPRD_FEED_STG T3,
(select * from gl_translation
where substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) T7
Where t1.tran_date = t3.tran_date
AND t1.tran_id = t3.tran_id
AND t3.VISION_GL =T7.VISION_GL)
and NOT EXISTS (
SELECT ''x'' From
ENRICHMENT_FEED_STG T3
WHERE COUNTRY
='||''''||P_Country||'''' ||'
AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND t3.tran_date =
t1.tran_date
AND t3.tran_id =
t1.tran_id)');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_MISSING_TRANS_STG (
COUNTRY, LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,TRAN_DATE,
TRAN_ID,PART_TRAN_SRL_NUM,
VISION_GL,TRAN_CCY ,
MIS_CURRENCY,
TRAN_TYPE,VALUE_DATE,
TRAN_AMT_LCY,TRAN_PARTICULAR,
FEED_DATE,PRODUCT,

RUN_STATUS,SOL_ID,ACID,ENTRY_USER_ID,PSTD_USER_ID,VFD_USER_ID,REF_NUM,TRA
N_RMKS,TRAN_PARTICULAR_2)
SELECT '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
NVL(TRIM(T1.CUST_ID),''D000'')
CUSTOMER_ID,
''0'' CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
TRAN_ID,
PART_TRAN_SRL_NUM,
T1.GL_SUB_HEAD_CODE VISION_GL,
T1.TRAN_CRNCY_CODE TRAN_CCY ,
T1.REF_CRNCY_CODE MIS_CURRENCY,
PART_TRAN_TYPE TRAN_TYPE,

NVL(VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


TRAN_AMT TRAN_AMT,
TRAN_PARTICULAR,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||'
PRODUCT,
''N''
RUN_STATUS,T1.SOL_ID,T1.ACID,T1.ENTRY_USER_ID,T1.PSTD_USER_ID,T1.VFD_USER
_ID,
REF_NUM,TRAN_RMKS, TRAN_PARTICULAR_2
from TEMP_TXN_DTL_HTD T1,GAM' ||
V_DB_Link || ' T3 ,
(SELECT * FROM GL_CODES WHERE
COUNTRY ='||''''||P_Country||'''' ||' AND LE_BOOK =''99''
AND
TO_CHAR(GL_TYPE) NOT IN(SELECT RETURN_VALUE_INT FROM
VISION_VARIABLES_NARROW
WHERE
VARIABLE = ''NON_CPTY_EXP_GL_TYPES'')) T2,
(select * from gl_translation
where substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) T7
where T1.Acid = T3.Acid
And tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T1.GL_SUB_HEAD_CODE =T7.vision_GL
And T1.DEL_FLG =''N''
And T1.GL_SUB_HEAD_CODE =
T2.VISION_GL
and Not EXISTS (
SELECT ''x'' From
TRADEPRD_FEED_STG T3,
(select * from gl_translation
where substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) T7
Where t1.tran_date = t3.tran_date
AND t1.tran_id = t3.tran_id
AND t3.VISION_GL =T7.VISION_GL)
and NOT EXISTS (
SELECT ''x'' From
ENRICHMENT_FEED_STG T3
WHERE COUNTRY
='||''''||P_Country||'''' ||'
AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND t3.tran_date =
t1.tran_date
AND t3.tran_id =
t1.tran_id)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/CXL/HTD Does
not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate ENRICHMENT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getFinacMissIntChgEnrhStgData;

/*#######################################################################
##################################################
Name : getPussMissIntChgEnrhStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[FIN_DLY_HEADERS,FIN_DLY_BALANCES].
Author : Vision Team
Calling Script :
Assumptions : None
Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getPussMissIntChgEnrhStgData(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'|| P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;
retVal := doPreliminaryValidations(P_Country, P_Le_Book ,
'getPussMissIntChgEnrhStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG


Delete Int ,Int , Chg .....');

BEGIN
writeLogInfo('DELETE FROM ENRICHMENT_FEED_STG
WHERE COUNTRY = '''||P_Country||'''
AND LE_BOOK = '''||P_Le_Book||'''
AND Feed_Date =
'''||G_Current_Business_Date||'''
AND PRODUCT =
'''||G_Feed_Name||'''');

EXECUTE IMMEDIATE ('DELETE FROM ENRICHMENT_FEED_STG


WHERE COUNTRY = '''||P_Country||'''
AND LE_BOOK = '''||P_Le_Book||'''
AND Feed_Date =
'''||G_Current_Business_Date||'''
AND PRODUCT =
'''||G_Feed_Name||'''');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
G_Error_Msg:='Delete Process completed
successfully for ENRICHMENT_FEED_STG Record Cnt:'||SQL%Rowcount;
writeLogInfo(G_Error_Msg);
WHEN OTHERS
THEN
G_Error_Msg:='Error trying to Delete from
ENRICHMENT_FEED_STG !!!!!!';
writeErrLogInfo(G_Error_Msg);
RETURN ERRONEOUS_EXIT;

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');
END;

BEGIN

writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG


Insert For Push Miss Int Othere Than CXL......');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(a.cust_id) Customer_id,
d.Foracid Contract_id,
C.Foracid Office_Account,
C.GL_SUB_HEAD_CODE Vision_GL,
C.Sol_id Vision_ouc,
''NA'' Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
Case When e.part_tran_type =''D'' Then ''C'' When
e.part_tran_type =''C'' Then ''D'' End Tran_type,
round( case when
f.MIS_CURRENCY<>'||''''||G_Book_Ccy_Code||'''' ||' and
f.TRAN_CCY<>'||''''||G_Book_Ccy_Code||'''' ||' then (f.TRAN_AMT_lcy *
NVL(WASH_RATE,1)) else f.TRAN_AMT_lcy end,2) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
e.tran_id,
e.TRAN_CRNCY_CODE MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
D.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,5
From INT_ADM' || V_DB_Link || ' A ,GSP' || V_DB_Link
|| ' B, gam' || V_DB_Link || ' C ,gam' || V_DB_Link || '
D,TEMP_TXN_DTL_HTD E,
(select * From ENRICHMENT_MISSING_TRANS_STG
Where country ='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||'''' ||'
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and run_status =''N''
And tran_particular like ''%:Int.Coll%'' )
f,TEMP_STD_CURRENCY_FEED_STG g,Cem' || V_DB_Link || ' Cem
where a.acid =d.acid
and e.tran_id =a.tran_id
and e.tran_date =a.tran_date
and e.part_tran_srl_num =a.ptran_srl_num
and D.schm_code = B.schm_code
and c.bacid = b.int_pandl_bacid_Dr
and substr(e.tran_particular,
instr(e.tran_particular,''^'',1)+1,instr(e.tran_particular,''^'',2)-2
)=d.foracid
and c.sol_id =d.sol_id
and c.ACCT_CRNCY_CODE= e.TRAN_CRNCY_CODE
and e.tran_id =f.tran_id
and e.tran_date =f.tran_date
and e.TRAN_CRNCY_CODE = Currency(+)
and a.cust_id =cem.cust_id(+)
and e.tran_particular like ''%:Int.Coll%''
and a.tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and e.del_flg !=''Y''
Union
select
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(a.cust_id) Customer_id,
d.Foracid Contract_id,
C.Foracid Office_Account,
C.GL_SUB_HEAD_CODE Vision_GL,
C.Sol_id Vision_ouc,
''NA'' Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
Case When e.part_tran_type =''D'' Then ''C'' When
e.part_tran_type =''C'' Then ''D'' End Tran_type,
round( case when
f.MIS_CURRENCY<>'||''''||G_Book_Ccy_Code||'''' ||' and
f.TRAN_CCY<>'||''''||G_Book_Ccy_Code||'''' ||' then (f.TRAN_AMT_lcy *
NVL(WASH_RATE,1)) else f.TRAN_AMT_lcy end,2) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
e.tran_id,
e.TRAN_CRNCY_CODE MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
D.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,5
From INT_ADM' || V_DB_Link || ' A ,GSP' || V_DB_Link
|| ' B, gam' || V_DB_Link || ' C ,gam' || V_DB_Link || '
D,TEMP_TXN_DTL_HTD E,
(select * From ENRICHMENT_MISSING_TRANS_STG
Where country ='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||'''' ||'
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and run_status =''N''
And tran_particular like ''%:Int.Pd:%'' )
f,TEMP_STD_CURRENCY_FEED_STG g,Cem' || V_DB_Link || ' Cem
where a.acid =d.acid
and e.tran_id =a.tran_id
and e.tran_date =a.tran_date
and e.part_tran_srl_num =a.ptran_srl_num
and D.schm_code = B.schm_code
and c.bacid = b.int_pandl_bacid_Cr
and c.ACCT_CRNCY_CODE= e.TRAN_CRNCY_CODE
and c.sol_id =d.sol_id
and e.tran_id =f.tran_id
and substr(e.tran_particular,
instr(e.tran_particular,''^'',1)+1,instr(e.tran_particular,''^'',2)-2
)=d.foracid
and e.tran_date =f.tran_date
and e.TRAN_CRNCY_CODE = Currency(+)
and a.cust_id =cem.cust_id(+)
and e.tran_particular like ''%:Int.Pd:%''
and a.tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and e.del_flg !=''Y'' ' );

EXECUTE IMMEDIATE ('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(a.cust_id) Customer_id,
d.Foracid Contract_id,
C.Foracid Office_Account,
C.GL_SUB_HEAD_CODE Vision_GL,
C.Sol_id Vision_ouc,
''NA'' Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
Case When e.part_tran_type =''D'' Then ''C'' When
e.part_tran_type =''C'' Then ''D'' End Tran_type,
round( case when
f.MIS_CURRENCY<>'||''''||G_Book_Ccy_Code||'''' ||' and
f.TRAN_CCY<>'||''''||G_Book_Ccy_Code||'''' ||' then (f.TRAN_AMT_lcy *
NVL(WASH_RATE,1)) else f.TRAN_AMT_lcy end,2) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
e.tran_id,
e.TRAN_CRNCY_CODE MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
D.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,5
From INT_ADM' || V_DB_Link || ' A ,GSP' || V_DB_Link
|| ' B, gam' || V_DB_Link || ' C ,gam' || V_DB_Link || '
D,TEMP_TXN_DTL_HTD E,
(select * From ENRICHMENT_MISSING_TRANS_STG
Where country ='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||'''' ||'
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and run_status =''N''
And tran_particular like ''%:Int.Coll%'' )
f,TEMP_STD_CURRENCY_FEED_STG g,Cem' || V_DB_Link || ' Cem
where a.acid =d.acid
and e.tran_id =a.tran_id
and e.tran_date =a.tran_date
and e.part_tran_srl_num =a.ptran_srl_num
and D.schm_code = B.schm_code
and c.bacid = b.int_pandl_bacid_Dr
and substr(e.tran_particular,
instr(e.tran_particular,''^'',1)+1,instr(e.tran_particular,''^'',2)-2
)=d.foracid
and c.sol_id =d.sol_id
and c.ACCT_CRNCY_CODE= e.TRAN_CRNCY_CODE
and e.tran_id =f.tran_id
and e.tran_date =f.tran_date
and e.TRAN_CRNCY_CODE = Currency(+)
and a.cust_id =cem.cust_id(+)
and e.tran_particular like ''%:Int.Coll%''
and a.tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and e.del_flg !=''Y''
Union
select
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(a.cust_id) Customer_id,
d.Foracid Contract_id,
C.Foracid Office_Account,
C.GL_SUB_HEAD_CODE Vision_GL,
C.Sol_id Vision_ouc,
''NA'' Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
Case When e.part_tran_type =''D'' Then ''C'' When
e.part_tran_type =''C'' Then ''D'' End Tran_type,
round( case when
f.MIS_CURRENCY<>'||''''||G_Book_Ccy_Code||'''' ||' and
f.TRAN_CCY<>'||''''||G_Book_Ccy_Code||'''' ||' then (f.TRAN_AMT_lcy *
NVL(WASH_RATE,1)) else f.TRAN_AMT_lcy end,2) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
e.tran_id,
e.TRAN_CRNCY_CODE MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
D.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,5
From INT_ADM' || V_DB_Link || ' A ,GSP' || V_DB_Link
|| ' B, gam' || V_DB_Link || ' C ,gam' || V_DB_Link || '
D,TEMP_TXN_DTL_HTD E,
(select * From ENRICHMENT_MISSING_TRANS_STG
Where country ='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||'''' ||'
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and run_status =''N''
And tran_particular like ''%:Int.Pd:%'' )
f,TEMP_STD_CURRENCY_FEED_STG g,Cem' || V_DB_Link || ' Cem
where a.acid =d.acid
and e.tran_id =a.tran_id
and e.tran_date =a.tran_date
and e.part_tran_srl_num =a.ptran_srl_num
and D.schm_code = B.schm_code
and c.bacid = b.int_pandl_bacid_Cr
and c.ACCT_CRNCY_CODE= e.TRAN_CRNCY_CODE
and c.sol_id =d.sol_id
and e.tran_id =f.tran_id
and substr(e.tran_particular,
instr(e.tran_particular,''^'',1)+1,instr(e.tran_particular,''^'',2)-2
)=d.foracid
and e.tran_date =f.tran_date
and e.TRAN_CRNCY_CODE = Currency(+)
and a.cust_id =cem.cust_id(+)
and e.tran_particular like ''%:Int.Pd:%''
and a.tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and e.del_flg !=''Y'' ' );

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For INT - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table 3 has already
been dropped For INT - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception 44 raised
trying to Delete ENRICHMENT_FEED_STG For INT - !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Beginning staging table


ENRICHMENT_MISSING_TRANS_STG Update For Feed Status Y. For INT ...');

BEGIN

writeLogInfo ('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(
select
E.TRAN_DATE TRAN_DATE,
E.TRAN_ID,
E.PART_TRAN_SRL_NUM
From INT_ADM' || V_DB_Link || ' A ,GSP' || V_DB_Link
|| ' B, gam' || V_DB_Link || ' C ,gam' || V_DB_Link || '
D,TEMP_TXN_DTL_HTD E,
(select distinct tran_id,tran_date From
ENRICHMENT_MISSING_TRANS_STG
Where country ='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||'''' ||'
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and run_status =''N''
And tran_particular like ''%:Int.Coll%'' )
f,TEMP_STD_CURRENCY_FEED_STG g,Cem' || V_DB_Link || ' Cem
where a.acid =d.acid
and e.tran_id =a.tran_id
and e.tran_date =a.tran_date
and e.part_tran_srl_num =a.ptran_srl_num
and D.schm_code = B.schm_code
and c.bacid = b.int_pandl_bacid_Dr
and c.ACCT_CRNCY_CODE= e.TRAN_CRNCY_CODE
and c.sol_id =d.sol_id
and e.tran_id =f.tran_id
and e.tran_date =f.tran_date
and e.TRAN_CRNCY_CODE = Currency(+)
and a.cust_id =cem.cust_id(+)
and tran_particular like ''%:Int.Coll%''
and a.tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and e.del_flg !=''Y''
Union
select
E.TRAN_DATE TRAN_DATE,
E.TRAN_ID,
E.PART_TRAN_SRL_NUM
From INT_ADM' || V_DB_Link || ' A ,GSP' || V_DB_Link
|| ' B, gam' || V_DB_Link || ' C ,gam' || V_DB_Link || '
D,TEMP_TXN_DTL_HTD E,
(select distinct tran_id,tran_date From
ENRICHMENT_MISSING_TRANS_STG
Where country ='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||'''' ||'
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and run_status =''N''
And tran_particular like ''%:Int.Pd:%'' )
f,TEMP_STD_CURRENCY_FEED_STG g,Cem' || V_DB_Link || ' Cem
where a.acid =d.acid
and e.tran_id =a.tran_id
and e.tran_date =a.tran_date
and e.part_tran_srl_num =a.ptran_srl_num
and D.schm_code = B.schm_code
and c.bacid = b.int_pandl_bacid_Cr
and c.sol_id =d.sol_id
and c.ACCT_CRNCY_CODE= e.TRAN_CRNCY_CODE
and e.tran_id =f.tran_id
and e.tran_date =f.tran_date
and e.TRAN_CRNCY_CODE = Currency(+)
and a.cust_id =cem.cust_id(+)
and tran_particular like ''%:Int.Pd:%''
and a.tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and e.del_flg !=''Y''
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date) ');

EXECUTE IMMEDIATE('UPDATE ENRICHMENT_MISSING_TRANS_STG T1


SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(
select
E.TRAN_DATE TRAN_DATE,
E.TRAN_ID,
E.PART_TRAN_SRL_NUM
From INT_ADM' || V_DB_Link || ' A ,GSP' || V_DB_Link
|| ' B, gam' || V_DB_Link || ' C ,gam' || V_DB_Link || '
D,TEMP_TXN_DTL_HTD E,
(select distinct tran_id,tran_date From
ENRICHMENT_MISSING_TRANS_STG
Where country ='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||'''' ||'
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and run_status =''N''
And tran_particular like ''%:Int.Coll%'' )
f,TEMP_STD_CURRENCY_FEED_STG g,Cem' || V_DB_Link || ' Cem
where a.acid =d.acid
and e.tran_id =a.tran_id
and e.tran_date =a.tran_date
and e.part_tran_srl_num =a.ptran_srl_num
and D.schm_code = B.schm_code
and c.bacid = b.int_pandl_bacid_Dr
and c.ACCT_CRNCY_CODE= e.TRAN_CRNCY_CODE
and c.sol_id =d.sol_id
and e.tran_id =f.tran_id
and e.tran_date =f.tran_date
and e.TRAN_CRNCY_CODE = Currency(+)
and a.cust_id =cem.cust_id(+)
and tran_particular like ''%:Int.Coll%''
and a.tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and e.del_flg !=''Y''
Union
select
E.TRAN_DATE TRAN_DATE,
E.TRAN_ID,
E.PART_TRAN_SRL_NUM
From INT_ADM' || V_DB_Link || ' A ,GSP' || V_DB_Link
|| ' B, gam' || V_DB_Link || ' C ,gam' || V_DB_Link || '
D,TEMP_TXN_DTL_HTD E,
(select distinct tran_id,tran_date From
ENRICHMENT_MISSING_TRANS_STG
Where country ='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||'''' ||'
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and run_status =''N''
And tran_particular like ''%:Int.Pd:%'' )
f,TEMP_STD_CURRENCY_FEED_STG g,Cem' || V_DB_Link || ' Cem
where a.acid =d.acid
and e.tran_id =a.tran_id
and e.tran_date =a.tran_date
and e.part_tran_srl_num =a.ptran_srl_num
and D.schm_code = B.schm_code
and c.bacid = b.int_pandl_bacid_Cr
and c.sol_id =d.sol_id
and c.ACCT_CRNCY_CODE= e.TRAN_CRNCY_CODE
and e.tran_id =f.tran_id
and e.tran_date =f.tran_date
and e.TRAN_CRNCY_CODE = Currency(+)
and a.cust_id =cem.cust_id(+)
and tran_particular like ''%:Int.Pd:%''
and a.tran_date =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and e.del_flg !=''Y''
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For INT - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table 3 has already
been dropped For INT - - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception 3 raised
trying to Update ENRICHMENT_MISSING_TRANS_STG For Run_status Y For INT
!!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

/* CXL Number Field Extraction */

BEGIN

writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG


Insert For Push Miss For CXL. Field.....');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
TRIM(T1.FORACID) CONTRACT_ID,
TRIM(T2.OFFICE_ACCOUNT) OFFICE_ACCOUNT,
T2.VISION_GL VISION_GL,
T2.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
TRAN_TYPE TRAN_TYPE,
TRAN_AMT_LCY * NVL(WASH_RATE,1)
TRAN_AMT_LCY ,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
T1.TRAN_ID,
MIS_CURRENCY MIS_CURRENCY,
NVL(VALUE_DATE,
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR''))
VALUE_DATE,
T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,7
From (
select
tran_id,tran_date,PART_TRAN_SRL_NUM,
Trim(substr(tran_particular, 1,
instr(tran_particular, ''-'') - 1)) FORACID
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and tran_particular like ''%Payoff
Book Adj to PandL a/c''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,
substr(tran_particular,
instr(tran_particular, ''-'') + 1,length(tran_particular))
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND (tran_particular like ''%Penal
Pand L amt for -%'' OR tran_particular like ''%Amt from Normal Pand L
for -%''
OR tran_particular like
''Normal Interest for -%'' OR tran_particular like ''Additional Interest
for -%''
OR tran_particular like ''%Amt
from Pay /Recv for -%'' OR tran_particular like ''CHRG IN TT FOR -%'')
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

substr(tran_particular,1,instr(tran_particular, '' Interest adjustment'')


- 1) as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND tran_particular like ''%Interest
adjustment%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,
trim(substr(tran_particular,
instr(tran_particular, ''['') + 1, (instr(tran_particular, '']'') - 1) -
(instr(tran_particular, ''['')))) as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t1.tran_particular like ''%: Book
Interest%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

trim(substr(tran_particular,length(''CTS/ Insufficent Funds.A/C IS '')))


as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND tran_particular like ''CTS/
Insufficent Funds.A/C IS%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

trim(substr(t1.tran_particular,1,instr(t1.tran_particular,''%-COMM-
KTL'')+10)) as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t1.tran_particular like ''%-COMM-
%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

trim(substr(t1.tran_particular,length(''COMM IN LIEU'')+1)) foracid


from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND tran_particular like ''%COMM IN
LIEU%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

substr(tran_particular,length(''MBL_MPESA_B2C_MPESA_TopupCharges/'')+1)
as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND tran_particular like
''MBL_MPESA_B2C_MPESA_TopupCharges/%'') T1,
ENRICHMENT_MISSING_TRANS_STG T2,
GAM' || V_DB_Link || ' T3 ,
CEM' || V_DB_Link || ' T4,
TEMP_STD_CURRENCY_FEED_STG t5
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM
AND RUN_STATUS=''N''
and T2.Feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
And Trim(T1.Foracid) =T3.Foracid
AND t3.cUST_ID =T4.CUST_ID(+)
and t2.TRAN_CCY=t5.currency(+) ' );

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
TRIM(T1.FORACID) CONTRACT_ID,
TRIM(T2.OFFICE_ACCOUNT) OFFICE_ACCOUNT,
T2.VISION_GL VISION_GL,
T2.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
TRAN_TYPE TRAN_TYPE,
TRAN_AMT_LCY * NVL(WASH_RATE,1)
TRAN_AMT_LCY ,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
T1.TRAN_ID,
MIS_CURRENCY MIS_CURRENCY,
NVL(VALUE_DATE,
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR''))
VALUE_DATE,
T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,7
From (
select
tran_id,tran_date,PART_TRAN_SRL_NUM,
Trim(substr(tran_particular, 1,
instr(tran_particular, ''-'') - 1)) FORACID
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and tran_particular like ''%Payoff
Book Adj to PandL a/c''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,
substr(tran_particular,
instr(tran_particular, ''-'') + 1,length(tran_particular))
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND (tran_particular like ''%Penal
Pand L amt for -%'' OR tran_particular like ''%Amt from Normal Pand L
for -%''
OR tran_particular like
''Normal Interest for -%'' OR tran_particular like ''Additional Interest
for -%''
OR tran_particular like ''%Amt
from Pay /Recv for -%'' OR tran_particular like ''CHRG IN TT FOR -%'')
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

substr(tran_particular,1,instr(tran_particular, '' Interest adjustment'')


- 1) as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND tran_particular like ''%Interest
adjustment%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,
trim(substr(tran_particular,
instr(tran_particular, ''['') + 1, (instr(tran_particular, '']'') - 1) -
(instr(tran_particular, ''['')))) as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t1.tran_particular like ''%: Book
Interest%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

trim(substr(tran_particular,length(''CTS/ Insufficent Funds.A/C IS '')))


as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND tran_particular like ''CTS/
Insufficent Funds.A/C IS%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

trim(substr(t1.tran_particular,1,instr(t1.tran_particular,''%-COMM-
KTL'')+10)) as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t1.tran_particular like ''%-COMM-
%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

trim(substr(t1.tran_particular,length(''COMM IN LIEU'')+1)) foracid


from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND tran_particular like ''%COMM IN
LIEU%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

substr(tran_particular,length(''MBL_MPESA_B2C_MPESA_TopupCharges/'')+1)
as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND tran_particular like
''MBL_MPESA_B2C_MPESA_TopupCharges/%'') T1,
ENRICHMENT_MISSING_TRANS_STG T2,
GAM' || V_DB_Link || ' T3 ,
CEM' || V_DB_Link || ' T4,
TEMP_STD_CURRENCY_FEED_STG t5
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM
AND RUN_STATUS=''N''
and T2.Feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
And Trim(T1.Foracid) =T3.Foracid
AND t3.cUST_ID =T4.CUST_ID(+)
and t2.TRAN_CCY=t5.currency(+) ' );

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table 3 has already
been dropped - FYI.For CXL ');
ELSE
writeErrLogInfo('Unhandled Exception 44 raised
trying to Insert Into ENRICHMENT_FEED_STG For CXL !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Beginning staging table


ENRICHMENT_MISSING_TRANS_STG Update For Trade Status Y. For CXL.....');

BEGIN

writeLogInfo ('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
( SELECT
T1.TRAN_DATE TRAN_DATE,
T1.TRAN_ID,
T1.PART_TRAN_SRL_NUM
From (
select
tran_id,tran_date,PART_TRAN_SRL_NUM,
Trim(substr(tran_particular, 1,
instr(tran_particular, ''-'') - 1)) FORACID
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and tran_particular like ''%Payoff
Book Adj to PandL a/c''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,
substr(tran_particular,
instr(tran_particular, ''-'') + 1,length(tran_particular))
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND (tran_particular like ''%Penal
Pand L amt for -%'' OR tran_particular like ''%Amt from Normal Pand L
for -%''
OR tran_particular like
''Normal Interest for -%'' OR tran_particular like ''Additional Interest
for -%''
OR tran_particular like ''%Amt
from Pay /Recv for -%'' OR tran_particular like ''CHRG IN TT FOR -%'')
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

substr(tran_particular,1,instr(tran_particular, '' Interest adjustment'')


- 1) as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND tran_particular like ''%Interest
adjustment%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,
trim(substr(tran_particular,
instr(tran_particular, ''['') + 1, (instr(tran_particular, '']'') - 1) -
(instr(tran_particular, ''['')))) as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t1.tran_particular like ''%: Book
Interest%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

trim(substr(tran_particular,length(''CTS/ Insufficent Funds.A/C IS '')))


as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND tran_particular like ''CTS/
Insufficent Funds.A/C IS%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

trim(substr(t1.tran_particular,1,instr(t1.tran_particular,''%-COMM-
KTL'')+10)) as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t1.tran_particular like ''%-COMM-
%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

trim(substr(t1.tran_particular,length(''COMM IN LIEU'')+1)) foracid


from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND tran_particular like ''%COMM IN
LIEU%''
UNION
select tran_id,tran_date,PART_TRAN_SRL_NUM,

substr(tran_particular,length(''MBL_MPESA_B2C_MPESA_TopupCharges/'')+1)
as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND tran_particular like
''MBL_MPESA_B2C_MPESA_TopupCharges/%'') T1,
ENRICHMENT_MISSING_TRANS_STG T2,
GAM' || V_DB_Link || ' T3 ,
CEM' || V_DB_Link || ' T4
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM
AND RUN_STATUS=''N''
and T2.Feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
And Trim(T1.Foracid) =T3.Foracid
AND t3.cUST_ID =T4.CUST_ID(+)
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM)');

EXECUTE IMMEDIATE('UPDATE ENRICHMENT_MISSING_TRANS_STG T1


SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
( SELECT
T1.TRAN_DATE TRAN_DATE,
T1.TRAN_ID,
T1.PART_TRAN_SRL_NUM
From (
select
tran_id,tran_date,PART_TRAN_SRL_NUM,
Trim(substr(tran_particular, 1,
instr(tran_particular, ''-'') - 1)) FORACID
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and tran_particular like ''%Payoff
Book Adj to PandL a/c''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,
substr(tran_particular,
instr(tran_particular, ''-'') + 1,length(tran_particular))
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND (tran_particular like ''%Penal
Pand L amt for -%'' OR tran_particular like ''%Amt from Normal Pand L
for -%''
OR tran_particular like
''Normal Interest for -%'' OR tran_particular like ''Additional Interest
for -%''
OR tran_particular like ''%Amt
from Pay /Recv for -%'' OR tran_particular like ''CHRG IN TT FOR -%'')
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

substr(tran_particular,1,instr(tran_particular, '' Interest adjustment'')


- 1) as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND tran_particular like ''%Interest
adjustment%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,
trim(substr(tran_particular,
instr(tran_particular, ''['') + 1, (instr(tran_particular, '']'') - 1) -
(instr(tran_particular, ''['')))) as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t1.tran_particular like ''%: Book
Interest%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

trim(substr(tran_particular,length(''CTS/ Insufficent Funds.A/C IS '')))


as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND tran_particular like ''CTS/
Insufficent Funds.A/C IS%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

trim(substr(t1.tran_particular,1,instr(t1.tran_particular,''%-COMM-
KTL'')+10)) as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t1.tran_particular like ''%-COMM-
%''
union
select tran_id,tran_date,PART_TRAN_SRL_NUM,

trim(substr(t1.tran_particular,length(''COMM IN LIEU'')+1)) foracid


from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND tran_particular like ''%COMM IN
LIEU%''
UNION
select tran_id,tran_date,PART_TRAN_SRL_NUM,

substr(tran_particular,length(''MBL_MPESA_B2C_MPESA_TopupCharges/'')+1)
as update_1
from
ENRICHMENT_MISSING_TRANS_STG t1
where country
='||''''||P_Country||'''' ||'
and le_book ='||''''||P_Le_Book||''''
||'
AND RUN_STATUS=''N''
and feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND tran_particular like
''MBL_MPESA_B2C_MPESA_TopupCharges/%'') T1,
ENRICHMENT_MISSING_TRANS_STG T2,
GAM' || V_DB_Link || ' T3 ,
CEM' || V_DB_Link || ' T4
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM
AND RUN_STATUS=''N''
and T2.Feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
And Trim(T1.Foracid) =T3.Foracid
AND t3.cUST_ID =T4.CUST_ID(+)
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For CXL- - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table 3 has already
been dropped For CXL - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception 3 raised
trying to Update ENRICHMENT_MISSING_TRANS_STG For Run_status Y For CXL
!!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

/* Tran remarks Field Extraction */

writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG


Insert For Push Miss For Tran_Remarks field....');

BEGIN

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t3.office_account Office_Account,
t3.Vision_GL,
t3.Sol_id Vision_ouc,
''NA'' Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.part_tran_type Tran_type,
t3.TRAN_AMT_lcy,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.TRAN_CRNCY_CODE MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,8
from TEMP_TXN_DTL_HTD t1,gam' || V_DB_Link || ' t2 ,
(select * from ENRICHMENT_MISSING_TRANS_STG where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'') AND RUN_STATUS=''N''
and tran_particular like ''IB TRF%'' ) t3
where t1.acid =t2.acid
and t1.tran_date ='||''''||G_Current_Business_Date
||''''||'
and t1.tran_id =t3.tran_id
and t1.tran_date =t3.tran_date
and t1.part_tran_type = case when t3.tran_type =''D''
then ''C'' else ''D'' end ' );

EXECUTE IMMEDIATE ('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t3.office_account Office_Account,
t3.Vision_GL,
t3.Sol_id Vision_ouc,
''NA'' Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.part_tran_type Tran_type,
t3.TRAN_AMT_lcy,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.TRAN_CRNCY_CODE MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,8
from TEMP_TXN_DTL_HTD t1,gam' || V_DB_Link || ' t2 ,
(select * from ENRICHMENT_MISSING_TRANS_STG where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'') AND RUN_STATUS=''N''
and tran_particular like ''IB TRF%'' ) t3
where t1.acid =t2.acid
and t1.tran_date ='||''''||G_Current_Business_Date
||''''||'
and t1.tran_id =t3.tran_id
and t1.tran_date =t3.tran_date
and t1.part_tran_type = case when t3.tran_type =''D''
then ''C'' else ''D'' end ' );

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table 3 has already
been dropped - FYI.For For Tran_Remarks ');
ELSE
writeErrLogInfo('Unhandled Exception 44 raised
trying to Insert Into ENRICHMENT_FEED_STG For Tran_Remarks !!');

RETURN ERRONEOUS_EXIT;
END IF;

END;

writeLogInfo('Beginning staging table


ENRICHMENT_MISSING_TRANS_STG Update For Trade Status Y. For
Tran_Remarks.....');

BEGIN

writeLogInfo ('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(select
T3.TRAN_DATE TRAN_DATE,
T3.TRAN_ID,
T3.PART_TRAN_SRL_NUM
from TEMP_TXN_DTL_HTD t1,gam' || V_DB_Link || ' t2 ,
(select * from ENRICHMENT_MISSING_TRANS_STG where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'') AND RUN_STATUS=''N''
and tran_particular like ''IB TRF%'' ) t3
where t1.acid =t2.acid
and t1.tran_date ='||''''||G_Current_Business_Date
||''''||'
and t1.tran_id =t3.tran_id
and t1.tran_date =t3.tran_date
and t1.part_tran_type = case when t3.tran_type =''D''
then ''C'' else ''D'' end
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM)');

EXECUTE IMMEDIATE('UPDATE ENRICHMENT_MISSING_TRANS_STG T1


SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(select
T3.TRAN_DATE TRAN_DATE,
T3.TRAN_ID,
T3.PART_TRAN_SRL_NUM
from TEMP_TXN_DTL_HTD t1,gam' || V_DB_Link || ' t2 ,
(select * from ENRICHMENT_MISSING_TRANS_STG where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'') AND RUN_STATUS=''N''
and tran_particular like ''IB TRF%'' ) t3
where t1.acid =t2.acid
and t1.tran_date ='||''''||G_Current_Business_Date
||''''||'
and t1.tran_id =t3.tran_id
and t1.tran_date =t3.tran_date
and t1.part_tran_type = case when t3.tran_type =''D''
then ''C'' else ''D'' end
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For Tran_Remarks...- FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table 3 has already
been dropped For CXL - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception 3 raised
trying to Update ENRICHMENT_MISSING_TRANS_STG For Run_status Y For
Tran_Remarks... !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

/* Tran Amt Tran Amt Matching Extraction */

writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG


Insert For Tran Amt Tran Amt Matching Extraction ....');

BEGIN

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select DISTINCT '||''''||P_Country||'''' ||'
COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round( case when
t1.MIS_CURRENCY<>'||''''||G_Book_Ccy_Code||'''' ||' and
t1.TRAN_CCY<>'||''''||G_Book_Ccy_Code||'''' ||' then (t1.TRAN_AMT_lcy *
NVL(WASH_RATE,1)) else t1.TRAN_AMT_lcy end,2) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,9
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
TEMP_TXN_DTL_HTD t3,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%COMM ON TRF%'' OR
tran_particular like ''TRF COMM%''
OR tran_particular like ''INT TRF COMM%'' OR
tran_particular like ''TRF TO HNR CHQ%''
OR tran_particular like ''ECOM ADMIN FEE%'' OR
tran_particular like ''%CHARGES%''
OR tran_particular like ''PO CHG%''
OR tran_particular like ''%PAYMENT%'')) t1,
TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
-- and t6.tran_amt=t1.tran_amt_lcy
and t6.PART_TRAN_TYPE =''D''
and t6.acid= t2.acid
and t1.tran_id=t3.tran_id
and t1.tran_date=t3.tran_date
and t1.tran_amt_lcy=t3.tran_amt
and t3.part_tran_type!=t1.TRAN_TYPE
and T6.tran_crncy_code = t5.currency(+)
and t6.cust_id is not null ' );

EXECUTE IMMEDIATE ('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select DISTINCT '||''''||P_Country||'''' ||'
COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round( case when
t1.MIS_CURRENCY<>'||''''||G_Book_Ccy_Code||'''' ||' and
t1.TRAN_CCY<>'||''''||G_Book_Ccy_Code||'''' ||' then (t1.TRAN_AMT_lcy *
NVL(WASH_RATE,1)) else t1.TRAN_AMT_lcy end,2) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,9
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
TEMP_TXN_DTL_HTD t3,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%COMM ON TRF%'' OR
tran_particular like ''TRF COMM%''
OR tran_particular like ''INT TRF COMM%'' OR
tran_particular like ''TRF TO HNR CHQ%''
OR tran_particular like ''ECOM ADMIN FEE%'' OR
tran_particular like ''%CHARGES%''
OR tran_particular like ''PO CHG%''
OR tran_particular like ''%PAYMENT%'')) t1,
TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
-- and t6.tran_amt=t1.tran_amt_lcy
and t6.PART_TRAN_TYPE =''D''
and t6.acid= t2.acid
and t1.tran_id=t3.tran_id
and t1.tran_date=t3.tran_date
and t1.tran_amt_lcy=t3.tran_amt
and t3.part_tran_type!=t1.TRAN_TYPE
and T6.tran_crncy_code = t5.currency(+)
and t6.cust_id is not null ' );

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table 3 has already
been dropped - FYI.For Tran Amt Tran Amt Matching Extraction ');
ELSE
writeErrLogInfo('Unhandled Exception 44 raised
trying to Insert Into ENRICHMENT_FEED_STG For Tran Amt Tran Amt
Matching Extraction !!');

RETURN ERRONEOUS_EXIT;
END IF;

END;

writeLogInfo('Beginning staging table


ENRICHMENT_MISSING_TRANS_STG Update For Trade Status Y. For Tran Amt
Tran Amt Matching Extraction .....');

BEGIN

writeLogInfo ('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(select
T1.TRAN_DATE TRAN_DATE,
T1.TRAN_ID,
T1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD
t6,TEMP_TXN_DTL_HTD t3,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%COMM ON TRF%'' OR
tran_particular like ''TRF COMM%''
OR tran_particular like ''INT TRF COMM%'' OR
tran_particular like ''TRF TO HNR CHQ%''
OR tran_particular like ''ECOM ADMIN FEE%'' OR
tran_particular like ''%CHARGES%''
OR tran_particular like ''PO CHG%''
OR tran_particular like ''%PAYMENT%'')) t1
where t1.tRAN_DATE = to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
-- and t6.tran_amt=t1.tran_amt_lcy
and t6.PART_TRAN_TYPE =''D''
and t6.acid= t2.acid
and t1.tran_id=t3.tran_id
and t1.tran_date=t3.tran_date
and t1.tran_amt_lcy=t3.tran_amt
and t3.part_tran_type!=t1.TRAN_TYPE
and t6.cust_id is not null
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM)');

EXECUTE IMMEDIATE('UPDATE ENRICHMENT_MISSING_TRANS_STG T1


SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(select
T1.TRAN_DATE TRAN_DATE,
T1.TRAN_ID,
T1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD
t6,TEMP_TXN_DTL_HTD t3,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%COMM ON TRF%'' OR
tran_particular like ''TRF COMM%''
OR tran_particular like ''INT TRF COMM%'' OR
tran_particular like ''TRF TO HNR CHQ%''
OR tran_particular like ''ECOM ADMIN FEE%'' OR
tran_particular like ''%CHARGES%''
OR tran_particular like ''PO CHG%''
OR tran_particular like ''%PAYMENT%'')) t1
where t1.tRAN_DATE = to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
-- and t6.tran_amt=t1.tran_amt_lcy
and t6.PART_TRAN_TYPE =''D''
and t6.acid= t2.acid
and t1.tran_id=t3.tran_id
and t1.tran_date=t3.tran_date
and t1.tran_amt_lcy=t3.tran_amt
and t3.part_tran_type!=t1.TRAN_TYPE
and t6.cust_id is not null
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For Tran Amt Tran Amt Matching Extraction .');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table 3 has already
been dropped For CXL - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception 3 raised
trying to Update ENRICHMENT_MISSING_TRANS_STG For Run_status Y For Tran
Amt Tran Amt Matching Extraction .. !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

--Start SO/Amortization Interest Enrichment

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For Push Miss For Tran_Remarks for Amortization Interest
field....');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG


(
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,TRAN_CCY,
TRAN_TYPE,TRAN_AMT,
TRAN_DATE,TRAN_ID,
MIS_CURRENCY,VALUE_DATE,
SCHM_TYPE,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION,10 FROM
(SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T2.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T2.VISION_GL VISION_GL,
T2.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
TRAN_TYPE TRAN_TYPE,
round(ACTUAL_AMT_COLL *
NVL(WASH_RATE,1),2) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
T2.TRAN_ID,
MIS_CURRENCY MIS_CURRENCY,

NVL(T2.VALUE_DATE,to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')) VALUE_DATE,
T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,10
From
CXL' || V_DB_Link || ' T1,
ENRICHMENT_MISSING_TRANS_STG t2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4,
TEMP_STD_CURRENCY_FEED_STG T5
WHERE CHRG_TRAN_ID = TRAN_ID
AND CHRG_TRAN_DATE = TRAN_DATE
AND CHRG_PART_TRAN_SRL_NUM =
PART_TRAN_SRL_NUM
and t1.CHRG_ACID =t2.acid
AND T3.ACID = TARGET_ACID
AND T3.CUST_ID = T4.CUST_ID(+)
AND RUN_STATUS=''N''
AND T3.CUST_ID IS NOT NULL
AND t2.tran_ccy = currency(+)
AND T2.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
UNION
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T2.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T2.VISION_GL VISION_GL,
T2.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
tran_ccy,
TRAN_TYPE TRAN_TYPE,
round(t2.tran_amt_lcy *
NVL(WASH_RATE,1),2) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
T2.TRAN_ID,
MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') VALUE_DATE,
T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,10
From
ENRICHMENT_MISSING_TRANS_STG t2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4,
TEMP_STD_CURRENCY_FEED_STG t5
WHERE TRIM(t2.REF_NUM) =t3.FORACID
AND T3.CUST_ID = T4.CUST_ID(+)
AND RUN_STATUS=''N''
and t2.tran_ccy=t5.CURRENCY(+)
AND T3.CUST_ID IS NOT NULL
AND T2.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'') )
');
EXECUTE IMMEDIATE ('INSERT INTO
ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,TRAN_CCY,
TRAN_TYPE,TRAN_AMT,
TRAN_DATE,TRAN_ID,
MIS_CURRENCY,VALUE_DATE,
SCHM_TYPE,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION,10 FROM
(SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T2.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T2.VISION_GL VISION_GL,
T2.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
TRAN_TYPE TRAN_TYPE,
round(ACTUAL_AMT_COLL *
NVL(WASH_RATE,1),2) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
T2.TRAN_ID,
MIS_CURRENCY MIS_CURRENCY,

NVL(T2.VALUE_DATE,to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')) VALUE_DATE,
T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,10
From
CXL' || V_DB_Link || ' T1,
ENRICHMENT_MISSING_TRANS_STG t2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4,
TEMP_STD_CURRENCY_FEED_STG T5
WHERE CHRG_TRAN_ID = TRAN_ID
AND CHRG_TRAN_DATE = TRAN_DATE
AND CHRG_PART_TRAN_SRL_NUM =
PART_TRAN_SRL_NUM
and t1.CHRG_ACID =t2.acid
AND T3.ACID = TARGET_ACID
AND T3.CUST_ID = T4.CUST_ID(+)
AND RUN_STATUS=''N''
AND T3.CUST_ID IS NOT NULL
AND t2.tran_ccy = currency(+)
AND T2.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
UNION
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T2.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T2.VISION_GL VISION_GL,
T2.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
tran_ccy,
TRAN_TYPE TRAN_TYPE,
round(t2.tran_amt_lcy *
NVL(WASH_RATE,1),2) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
T2.TRAN_ID,
MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') VALUE_DATE,
T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,10
From
ENRICHMENT_MISSING_TRANS_STG t2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4,
TEMP_STD_CURRENCY_FEED_STG t5
WHERE TRIM(t2.REF_NUM) =t3.FORACID
AND T3.CUST_ID = T4.CUST_ID(+)
AND RUN_STATUS=''N''
and t2.tran_ccy=t5.CURRENCY(+)
AND T3.CUST_ID IS NOT NULL
AND T2.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'') )
');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For Amortization Interest Tran_Remarks ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For Tran_Remarks(Amort) !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo ('UPDATE ENRICHMENT_MISSING_TRANS_STG T2 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM (
SELECT
T2.TRAN_ID,
T2.tran_date,
T2.part_tran_srl_num
From
CXL' || V_DB_Link || ' T1,
ENRICHMENT_MISSING_TRANS_STG t2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE CHRG_TRAN_ID = TRAN_ID
AND CHRG_TRAN_DATE = TRAN_DATE
AND CHRG_PART_TRAN_SRL_NUM =
PART_TRAN_SRL_NUM
and t1.CHRG_ACID =t2.acid
AND T3.ACID = TARGET_ACID
AND T3.CUST_ID = T4.CUST_ID(+)
AND RUN_STATUS=''N''
AND T3.CUST_ID IS NOT NULL
AND T2.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
UNION
SELECT
T2.TRAN_ID,
T2.tran_date,
T2.part_tran_srl_num
From
ENRICHMENT_MISSING_TRANS_STG t2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE TRIM(t2.REF_NUM) =t3.FORACID
AND T3.CUST_ID = T4.CUST_ID(+)
AND RUN_STATUS=''N''
AND T3.CUST_ID IS NOT NULL
AND T2.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'') ) t3
where T2.TRAN_ID=t3.tran_id
AND T2.tran_date=t3.tran_date
AND
T2.part_tran_srl_num=t3.part_tran_srl_num ) ');

EXECUTE IMMEDIATE('UPDATE ENRICHMENT_MISSING_TRANS_STG T2


SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM (
SELECT
T2.TRAN_ID,
T2.tran_date,
T2.part_tran_srl_num
From
CXL' || V_DB_Link || ' T1,
ENRICHMENT_MISSING_TRANS_STG t2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE CHRG_TRAN_ID = TRAN_ID
AND CHRG_TRAN_DATE = TRAN_DATE
AND CHRG_PART_TRAN_SRL_NUM =
PART_TRAN_SRL_NUM
and t1.CHRG_ACID =t2.acid
AND T3.ACID = TARGET_ACID
AND T3.CUST_ID = T4.CUST_ID(+)
AND RUN_STATUS=''N''
AND T3.CUST_ID IS NOT NULL
AND T2.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
UNION
SELECT
T2.TRAN_ID,
T2.tran_date,
T2.part_tran_srl_num
From
ENRICHMENT_MISSING_TRANS_STG t2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE TRIM(t2.REF_NUM) =t3.FORACID
AND T3.CUST_ID = T4.CUST_ID(+)
AND RUN_STATUS=''N''
AND T3.CUST_ID IS NOT NULL
AND T2.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'') ) t3
where T2.TRAN_ID=t3.tran_id
AND T2.tran_date=t3.tran_date
AND
T2.part_tran_srl_num=t3.part_tran_srl_num ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For Tran_Remarks(Amort)...- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For Amortization Interest Tran_Remarks ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For Tran_Remarks(Amort) !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For Push Miss For SIE/SIF(SO) Charges ....');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select DISTINCT '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round(t6.tran_amt * NVL(WASH_RATE,1),2) tran_amt,
-- t1.TRAN_AMT_lcy,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,11
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%CHARGES%'')) t1,
TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.acid= t2.acid
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE = t1.tran_type
and t6.PART_TRAN_SRL_NUM = t1.PART_TRAN_SRL_NUM
and t6.tran_crncy_code=t5.currency
and t6.gl_sub_head_code=t1.vision_gl');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select DISTINCT '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round(t6.tran_amt * NVL(WASH_RATE,1),2) tran_amt,
-- t1.TRAN_AMT_lcy,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,11
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%CHARGES%'')) t1,
TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.acid= t2.acid
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE = t1.tran_type
and t6.PART_TRAN_SRL_NUM = t1.PART_TRAN_SRL_NUM
and t6.tran_crncy_code=t5.currency
and t6.gl_sub_head_code=t1.vision_gl');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For SIE/SIF(SO) Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For Tran_Remarks(Amort) !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(
select T1.TRAN_DATE TRAN_DATE,
T1.TRAN_ID,
T1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%CHARGES%'')) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.acid= t2.acid
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE = t1.tran_type
and t6.PART_TRAN_SRL_NUM = t1.PART_TRAN_SRL_NUM
and t6.gl_sub_head_code=t1.vision_gl ) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM)');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(
select T1.TRAN_DATE TRAN_DATE,
T1.TRAN_ID,
T1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%CHARGES%'')) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.acid= t2.acid
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE = t1.tran_type
and t6.PART_TRAN_SRL_NUM = t1.PART_TRAN_SRL_NUM
and t6.gl_sub_head_code=t1.vision_gl ) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For SIE/SIF(SO) Charges...- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For SIE/SIF(SO) Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For SIE/SIF(SO) Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For cust id is null ....');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Customer_id,
Contract_id,
Office_Account,
Vision_GL,
Vision_ouc,
Cost_center,
PROFIT_CENTER,
Tran_Ccy,
Tran_type Tran_type,
TRAN_AMT/count(tran_id) over (partition by tran_id)
TRAN_AMT,
Tran_date,
tran_id,
MIS_CURRENCY,
Value_Date,
Schm_type,
FEED_DATE,
PRODUCT,
RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,12 from (
select DISTINCT
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round(t1.TRAN_AMT_LCY*nvl(wash_rate,1),2)
TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%DEBIT CARD
PIN%FEE%'')) t1,
TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
AND t6.tran_crncy_code=t5.currency(+)
and t6.cust_id is not null) ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Customer_id,
Contract_id,
Office_Account,
Vision_GL,
Vision_ouc,
Cost_center,
PROFIT_CENTER,
Tran_Ccy,
Tran_type Tran_type,
TRAN_AMT/count(tran_id) over (partition by tran_id)
TRAN_AMT,
Tran_date,
tran_id,
MIS_CURRENCY,
Value_Date,
Schm_type,
FEED_DATE,
PRODUCT,
RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,12 from (
select DISTINCT
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round(t1.TRAN_AMT_LCY*nvl(wash_rate,1),2)
TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%DEBIT CARD
PIN%FEE%'')) t1,
TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
AND t6.tran_crncy_code=t5.currency(+)
and t6.cust_id is not null) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For SIE/SIF(SO) Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For Tran_Remarks(Amort) !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(
select DISTINCT
t1.tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%DEBIT CARD
PIN%FEE%'')) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.cust_id is not null
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM)');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(
select DISTINCT
t1.tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%DEBIT CARD
PIN%FEE%'')) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.cust_id is not null
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For SIE/SIF(SO) Charges...- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. cust is null Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For SIE/SIF(SO) Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For cust id is not null ....');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select DISTINCT '||''''||P_Country||'''' ||'
COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round(t6.TRAN_AMT * NVL(WASH_RATE,1),2) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,13
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%FEE%'')) t1,
TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.tran_amt = t1.tran_amt_lcy
and t6.tran_crncy_code=t5.currency(+)
and t6.acid= t2.acid
and t6.cust_id is not null ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select DISTINCT '||''''||P_Country||'''' ||'
COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round(t6.TRAN_AMT * NVL(WASH_RATE,1),2) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,13
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%FEE%'')) t1,
TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.tran_amt = t1.tran_amt_lcy
and t6.tran_crncy_code=t5.currency(+)
and t6.acid= t2.acid
and t6.cust_id is not null ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For cust id is not ) Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For cust id is not null!!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET
RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(
select T1.TRAN_DATE TRAN_DATE,
T1.TRAN_ID,
T1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and ( tran_particular like ''%FEE%'' )) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.tran_amt = t1.tran_amt_lcy
and t6.acid= t2.acid
and t6.cust_id is not null
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM) ');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(
select T1.TRAN_DATE TRAN_DATE,
T1.TRAN_ID,
T1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and ( tran_particular like ''%FEE%'' )) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.tran_amt = t1.tran_amt_lcy
and t6.acid= t2.acid
and t6.cust_id is not null
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For SIE/SIF(SO) Charges...- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. cust is null Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For cust id is not null Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 12.3:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select DISTINCT '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round(t1.TRAN_AMT_lcy * NVL(WASH_RATE,1),2)
tran_amt,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,14
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD
t6,TEMP_TXN_DTL_HTD t3,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%COMM ON TRF%'' OR
tran_particular like ''TRF COMM%''
OR tran_particular like ''INT TRF COMM%'' OR
tran_particular like ''TRF TO HNR CHQ%''
OR tran_particular like ''ECOM ADMIN FEE%''
OR tran_particular like ''%TRF%''
OR tran_particular like ''%TFR%''
OR tran_particular like ''%TFR FEE%''
OR tran_particular like ''FR CHRG%''
OR tran_particular like ''TRF CHG%''
OR tran_particular like ''COM ON TRF%''
OR tran_particular like ''COMM ON ERASURE%''
OR tran_particular like ''COMM FOR REMOVAL%''
OR tran_particular like ''TRF COMM%''
OR tran_particular like ''%COMM%''
OR tran_particular like ''INT TRF COMM%''
OR tran_particular like ''ERASURE OF%''
OR TRAN_RMKS like ''%INTEREST%''
OR tran_particular like ''%DUPLICATE STATEMENT
FEE%''
)) t1, TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE =''D''
and t6.acid= t2.acid
and t1.tran_id=t3.tran_id
and t1.tran_date=t3.tran_date
and t1.tran_amt_lcy=t3.tran_amt
and t3.part_tran_type!=t1.TRAN_TYPE
and t6.tran_crncy_code=t5.currency(+)
and t6.cust_id is not null');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select DISTINCT '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round(t1.TRAN_AMT_lcy * NVL(WASH_RATE,1),2)
tran_amt,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,14
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD
t6,TEMP_TXN_DTL_HTD t3,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%COMM ON TRF%'' OR
tran_particular like ''TRF COMM%''
OR tran_particular like ''INT TRF COMM%'' OR
tran_particular like ''TRF TO HNR CHQ%''
OR tran_particular like ''ECOM ADMIN FEE%''
OR tran_particular like ''%TRF%''
OR tran_particular like ''%TFR%''
OR tran_particular like ''%TFR FEE%''
OR tran_particular like ''FR CHRG%''
OR tran_particular like ''TRF CHG%''
OR tran_particular like ''COM ON TRF%''
OR tran_particular like ''COMM ON ERASURE%''
OR tran_particular like ''COMM FOR REMOVAL%''
OR tran_particular like ''TRF COMM%''
OR tran_particular like ''%COMM%''
OR tran_particular like ''INT TRF COMM%''
OR tran_particular like ''ERASURE OF%''
OR TRAN_RMKS like ''%INTEREST%''
OR tran_particular like ''%DUPLICATE STATEMENT
FEE%''
)) t1, TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE =''D''
and t6.acid= t2.acid
and t1.tran_id=t3.tran_id
and t1.tran_date=t3.tran_date
and t1.tran_amt_lcy=t3.tran_amt
and t3.part_tran_type!=t1.TRAN_TYPE
and t3.tran_crncy_code=t5.currency(+)
and t6.cust_id is not null');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For cust id is not ) Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For cust id is not null!!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(
select T1.TRAN_DATE TRAN_DATE,
T1.TRAN_ID,
T1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD
t6,TEMP_TXN_DTL_HTD t3,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%COMM ON TRF%'' OR
tran_particular like ''TRF COMM%''
OR tran_particular like ''INT TRF COMM%'' OR
tran_particular like ''TRF TO HNR CHQ%''
OR tran_particular like ''ECOM ADMIN FEE%'' OR
tran_particular like ''%CHARGES%''
OR tran_particular like ''%TRF%''
OR tran_particular like ''%TFR%''
OR tran_particular like ''%TFR FEE%''
OR tran_particular like ''FR CHRG%''
OR tran_particular like ''TRF CHG%''
OR tran_particular like ''COM ON TRF%''
OR tran_particular like ''COMM ON ERASURE%''
OR tran_particular like ''COMM FOR REMOVAL%''
OR tran_particular like ''TRF COMM%''
OR tran_particular like ''%COMM%''
OR tran_particular like ''INT TRF COMM%''
OR tran_particular like ''ERASURE OF%''
OR TRAN_RMKS like ''%INTEREST%''
OR tran_particular like ''%DUPLICATE STATEMENT
FEE%''
)) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE =''D''
and t6.acid= t2.acid
and t1.tran_id=t3.tran_id
and t1.tran_date=t3.tran_date
and t1.tran_amt_lcy=t3.tran_amt
and t3.part_tran_type!=t1.TRAN_TYPE
and t6.cust_id is not null
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM)');
EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(
select T1.TRAN_DATE TRAN_DATE,
T1.TRAN_ID,
T1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD
t6,TEMP_TXN_DTL_HTD t3,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%COMM ON TRF%'' OR
tran_particular like ''TRF COMM%''
OR tran_particular like ''INT TRF COMM%'' OR
tran_particular like ''TRF TO HNR CHQ%''
OR tran_particular like ''ECOM ADMIN FEE%'' OR
tran_particular like ''%CHARGES%''
OR tran_particular like ''%TRF%''
OR tran_particular like ''%TFR%''
OR tran_particular like ''%TFR FEE%''
OR tran_particular like ''FR CHRG%''
OR tran_particular like ''TRF CHG%''
OR tran_particular like ''COM ON TRF%''
OR tran_particular like ''COMM ON ERASURE%''
OR tran_particular like ''COMM FOR REMOVAL%''
OR tran_particular like ''TRF COMM%''
OR tran_particular like ''%COMM%''
OR tran_particular like ''INT TRF COMM%''
OR tran_particular like ''ERASURE OF%''
OR TRAN_RMKS like ''%INTEREST%''
OR tran_particular like ''%DUPLICATE STATEMENT
FEE%''
)) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE =''D''
and t6.acid= t2.acid
and t1.tran_id=t3.tran_id
and t1.tran_date=t3.tran_date
and t1.tran_amt_lcy=t3.tran_amt
and t3.part_tran_type!=t1.TRAN_TYPE
and t6.cust_id is not null
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For SIE/SIF(SO) Charges...- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. cust is null Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For cust id is not null Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 13:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t3.office_account Office_Account,
t3.Vision_GL,
t3.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t3.Tran_type,
round(t3.TRAN_AMT_lcy * NVL(WASH_RATE,1),2)
tran_amt,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t3.tran_id,
t3.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,15
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'') AND RUN_STATUS=''N''
and ref_num =''EEC'' ) t3,
TEMP_STD_CURRENCY_FEED_STG t5
where t3.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t3.tran_id
and t6.tran_date=t3.tran_date
and t6.tran_particular=t3.tran_particular
and t6.acid= t2.acid
AND t6.tran_crncy_code= t5.currency(+)
and Trim(t3.ref_num) =''EEC''
and t6.cust_id is not null');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t3.office_account Office_Account,
t3.Vision_GL,
t3.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t3.Tran_type,
round(t3.TRAN_AMT_lcy * NVL(WASH_RATE,1),2)
tran_amt,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t3.tran_id,
t3.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,15
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'') AND RUN_STATUS=''N''
and ref_num =''EEC'' ) t3,
TEMP_STD_CURRENCY_FEED_STG t5
where t3.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t3.tran_id
and t6.tran_date=t3.tran_date
and t6.tran_particular=t3.tran_particular
and t6.acid= t2.acid
AND t6.tran_crncy_code= t5.currency(+)
and Trim(t3.ref_num) =''EEC''
and t6.cust_id is not null');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 13 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 13 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(Select
T3.TRAN_DATE ,
T3.TRAN_ID,
T3.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'') AND RUN_STATUS=''N''
and ref_num =''EEC'' ) t3
where t3.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t3.tran_id
and t6.tran_date=t3.tran_date
and t6.tran_particular=t3.tran_particular
and t6.acid= t2.acid
and Trim(t3.ref_num) =''EEC''
and t6.cust_id is not null
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM)');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(Select
T3.TRAN_DATE ,
T3.TRAN_ID,
T3.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'') AND RUN_STATUS=''N''
and ref_num =''EEC'' ) t3
where t3.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t3.tran_id
and t6.tran_date=t3.tran_date
and t6.tran_particular=t3.tran_particular
and t6.acid= t2.acid
and Trim(t3.ref_num) =''EEC''
and t6.cust_id is not null
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 13...- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. cust is null Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 13 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 14:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t3.office_account Office_Account,
t3.Vision_GL,
t3.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.part_tran_type Tran_type,
round(t3.TRAN_AMT_lcy * NVL(WASH_RATE,1),2)
TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.TRAN_CRNCY_CODE MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,16
from TEMP_TXN_DTL_HTD t1, gam' || V_DB_Link || ' t2,
TEMP_TXN_DTL_HTD t6,TEMP_STD_CURRENCY_FEED_STG t5,
(select * from ENRICHMENT_MISSING_TRANS_STG where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'') AND RUN_STATUS=''N'') t3
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.acid= t2.acid
and t6.part_tran_type=''D''
and t1.tran_id =t3.tran_id
and t1.tran_date =t3.tran_date
and t1.tran_amt = t3.TRAN_AMT_LCY
and t6.tran_crncy_code= t5.currency(+)
and Trim(t1.TRAN_PARTICULAR_2) =Trim(t6.TRAN_PARTICULAR_2)
and t6.cust_id is not null ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t3.office_account Office_Account,
t3.Vision_GL,
t3.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.part_tran_type Tran_type,
round(t3.TRAN_AMT_lcy * NVL(WASH_RATE,1),2)
TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.TRAN_CRNCY_CODE MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,16
from TEMP_TXN_DTL_HTD t1, gam' || V_DB_Link || ' t2,
TEMP_TXN_DTL_HTD t6,TEMP_STD_CURRENCY_FEED_STG t5,
(select * from ENRICHMENT_MISSING_TRANS_STG where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'') AND RUN_STATUS=''N'') t3
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.acid= t2.acid
and t6.part_tran_type=''D''
and t1.tran_id =t3.tran_id
and t1.tran_date =t3.tran_date
and t1.tran_amt = t3.TRAN_AMT_LCY
and t6.tran_crncy_code= t5.currency(+)
and Trim(t1.TRAN_PARTICULAR_2) =Trim(t6.TRAN_PARTICULAR_2)
and t6.cust_id is not null ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 14 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 14 !!');
RETURN ERRONEOUS_EXIT;
END;
BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(
Select
T3.TRAN_DATE TRAN_DATE,
T3.TRAN_ID,
T3.PART_TRAN_SRL_NUM
from TEMP_TXN_DTL_HTD t1, gam' || V_DB_Link || '
t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'') AND RUN_STATUS=''N'') t3
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.acid= t2.acid
and t6.part_tran_type=''D''
and t1.tran_id =t3.tran_id
and t1.tran_date =t3.tran_date
and t1.tran_amt = t3.TRAN_AMT_LCY
and Trim(t1.TRAN_PARTICULAR_2) =Trim(t6.TRAN_PARTICULAR_2)
and t6.cust_id is not null
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM) ');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(
Select
T3.TRAN_DATE TRAN_DATE,
T3.TRAN_ID,
T3.PART_TRAN_SRL_NUM
from TEMP_TXN_DTL_HTD t1, gam' || V_DB_Link || '
t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
tran_date =to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR'') AND RUN_STATUS=''N'') t3
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.acid= t2.acid
and t6.part_tran_type=''D''
and t1.tran_id =t3.tran_id
and t1.tran_date =t3.tran_date
and t1.tran_amt = t3.TRAN_AMT_LCY
and Trim(t1.TRAN_PARTICULAR_2) =Trim(t6.TRAN_PARTICULAR_2)
and t6.cust_id is not null
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 14...- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. cust is null Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 14 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 15:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t3.cust_id) Customer_id,
t3.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round( t2.TRAN_AMT * NVL(WASH_RATE,1),2)
TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t3.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,17
from ENRICHMENT_MISSING_TRANS_STG t1, TEMP_TXN_DTL_HTD t2,
gam' || V_DB_Link || ' t3 ,TEMP_STD_CURRENCY_FEED_STG t5
where t1.feed_date='||''''||G_Current_Business_Date ||''''||'
AND t1.RUN_STATUS =''N''
and (t1.tran_rmks=''INSURANCE PREMIUM'' OR
t1.tran_rmks=''PREMIUM'' OR t1.tran_particular like ''%DDS CHARGES%'')
and t1.tran_id=t2.tran_id and t1.tran_date=t2.tran_date and
T1.tran_type !=t2.tran_type
and t2.tran_crncy_code = t5.currency(+)
and t3.acid=t2.acid and T2.CUST_ID is not null ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t3.cust_id) Customer_id,
t3.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round( t2.TRAN_AMT * NVL(WASH_RATE,1),2)
TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t3.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,17
from ENRICHMENT_MISSING_TRANS_STG t1, TEMP_TXN_DTL_HTD t2,
gam' || V_DB_Link || ' t3 ,TEMP_STD_CURRENCY_FEED_STG t5
where t1.feed_date='||''''||G_Current_Business_Date ||''''||'
AND t1.RUN_STATUS =''N''
and (t1.tran_rmks=''INSURANCE PREMIUM'' OR
t1.tran_rmks=''PREMIUM'' OR t1.tran_particular like ''%DDS CHARGES%'')
and t1.tran_id=t2.tran_id and t1.tran_date=t2.tran_date and
T1.tran_type !=t2.tran_type
and t2.tran_crncy_code = t5.currency(+)
and t3.acid=t2.acid and T2.CUST_ID is not null ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 15 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 15 !!');
RETURN ERRONEOUS_EXIT;
END;
BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(Select
T1.TRAN_DATE TRAN_DATE,
T1.TRAN_ID,
T1.PART_TRAN_SRL_NUM
from ENRICHMENT_MISSING_TRANS_STG t1,
TEMP_TXN_DTL_HTD t2, gam' || V_DB_Link || ' t3
where t1.feed_date='||''''||G_Current_Business_Date ||''''||'
AND t1.RUN_STATUS =''N''
and (t1.tran_rmks=''INSURANCE PREMIUM'' OR
t1.tran_rmks=''PREMIUM'' OR t1.tran_particular like ''%DDS CHARGES%'')
and t1.tran_id=t2.tran_id and t1.tran_date=t2.tran_date and
T1.tran_type !=t2.tran_type
and t3.acid=t2.acid and T2.CUST_ID is not null
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM)');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
and exists
(select ''x'' from
(Select
T1.TRAN_DATE TRAN_DATE,
T1.TRAN_ID,
T1.PART_TRAN_SRL_NUM
from ENRICHMENT_MISSING_TRANS_STG t1,
TEMP_TXN_DTL_HTD t2, gam' || V_DB_Link || ' t3
where t1.feed_date='||''''||G_Current_Business_Date ||''''||'
AND t1.RUN_STATUS =''N''
and (t1.tran_rmks=''INSURANCE PREMIUM'' OR
t1.tran_rmks=''PREMIUM'' OR t1.tran_particular like ''%DDS CHARGES%'')
and t1.tran_id=t2.tran_id and t1.tran_date=t2.tran_date and
T1.tran_type !=t2.tran_type
and t3.acid=t2.acid and T2.CUST_ID is not null
) T2
Where T1.tran_id =t2.tran_id
and t1.tran_date =t2.tran_date
and t1.PART_TRAN_SRL_NUM
=t2.PART_TRAN_SRL_NUM)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 15...- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. cust is null Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 15 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 17:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T2.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T2.VISION_GL VISION_GL,
T2.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
TRAN_TYPE TRAN_TYPE,
round(TRAN_AMT_LCY * NVL(WASH_RATE,1),2)
TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
T2.TRAN_ID,
MIS_CURRENCY MIS_CURRENCY,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,17
From
ENRICHMENT_MISSING_TRANS_STG t2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4,
TEMP_STD_CURRENCY_FEED_STG t5
WHERE TRIM(t2.TRAN_RMKS) =t3.FORACID
AND T3.CUST_ID = T4.CUST_ID(+)
AND RUN_STATUS=''N''
and t2.tran_ccy= t5.currency(+)
AND T3.CUST_ID IS NOT NULL
AND T2.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'') ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T2.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T2.VISION_GL VISION_GL,
T2.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
TRAN_TYPE TRAN_TYPE,
round(TRAN_AMT_LCY * NVL(WASH_RATE,1),2)
TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
T2.TRAN_ID,
MIS_CURRENCY MIS_CURRENCY,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,17
From
ENRICHMENT_MISSING_TRANS_STG t2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4,
TEMP_STD_CURRENCY_FEED_STG t5
WHERE TRIM(t2.TRAN_RMKS) =t3.FORACID
AND T3.CUST_ID = T4.CUST_ID(+)
AND RUN_STATUS=''N''
and t2.tran_ccy= t5.currency(+)
AND T3.CUST_ID IS NOT NULL
AND T2.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'') ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 17 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 17 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T2 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
ENRICHMENT_MISSING_TRANS_STG t1,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE TRIM(t1.TRAN_RMKS) =t3.FORACID
AND T3.CUST_ID = T4.CUST_ID(+)
AND T3.CUST_ID IS NOT NULL
AND t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM
AND T1.RUN_STATUS =''N''
AND T1.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR''))');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T2 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
ENRICHMENT_MISSING_TRANS_STG t1,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE TRIM(t1.TRAN_RMKS) =t3.FORACID
AND T3.CUST_ID = T4.CUST_ID(+)
AND T3.CUST_ID IS NOT NULL
AND t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM
AND T1.RUN_STATUS =''N''
AND T1.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR''))');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 17...- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. cust is null Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 17 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 19:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T5.FORACID OFFICE_ACCOUNT,
T5.GL_SUB_HEAD_CODE VISION_GL,
T5.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
--COLL_CRNCY_CODE TRAN_CCY,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
PART_TRAN_TYPE TRAN_TYPE,
ACTUAL_AMT_COLL TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
T1.CHRG_TRAN_ID,
COLL_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,19
From
CXL' || V_DB_Link || ' t1,
GAM' || V_DB_Link || ' T3,
GAM' || V_DB_Link || ' T5,
CEM' || V_DB_Link || ' T4
WHERE ACTUAL_AMT_COLL != 0
AND TARGET_ACID =T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+)
AND CHRG_ACID =t5.acid
AND T3.CUST_ID IS NOT NULL
AND CHRG_PART_TRAN_SRL_NUM is null
AND CHRG_TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND EXISTS
(SELECT ''x'' FROM
ENRICHMENT_MISSING_TRANS_STG t1
WHERE COUNTRY
='||''''||P_Country||'''' ||'
AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND t1.TRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS =''N''
AND CHRG_TRAN_ID = TRAN_ID
AND CHRG_TRAN_DATE = TRAN_DATE
AND CHRG_ACID =ACID)');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T5.FORACID OFFICE_ACCOUNT,
T5.GL_SUB_HEAD_CODE VISION_GL,
T5.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
--COLL_CRNCY_CODE TRAN_CCY,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
PART_TRAN_TYPE TRAN_TYPE,
ACTUAL_AMT_COLL TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
T1.CHRG_TRAN_ID,
COLL_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,19
From
CXL' || V_DB_Link || ' t1,
GAM' || V_DB_Link || ' T3,
GAM' || V_DB_Link || ' T5,
CEM' || V_DB_Link || ' T4
WHERE ACTUAL_AMT_COLL != 0
AND TARGET_ACID =T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+)
AND CHRG_ACID =t5.acid
AND T3.CUST_ID IS NOT NULL
AND CHRG_PART_TRAN_SRL_NUM is null
AND CHRG_TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND EXISTS
(SELECT ''x'' FROM
ENRICHMENT_MISSING_TRANS_STG t1
WHERE COUNTRY
='||''''||P_Country||'''' ||'
AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND t1.TRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS =''N''
AND CHRG_TRAN_ID = TRAN_ID
AND CHRG_TRAN_DATE = TRAN_DATE
AND CHRG_ACID =ACID)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 19 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 19 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG t3 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND t3.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
CXL' || V_DB_Link || ' t1,GAM' ||
V_DB_Link || ' T2
WHERE ACTUAL_AMT_COLL !=0
And CHRG_TRAN_ID = TRAN_ID
AND CHRG_TRAN_DATE = TRAN_DATE
and TARGET_ACID =acid
AND CHRG_PART_TRAN_SRL_NUM is
null
and t1.CHRG_ACID = T3.acid
AND T2.CUST_ID is not null
AND CHRG_TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR''))');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG t3 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND t3.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
CXL' || V_DB_Link || ' t1,GAM' ||
V_DB_Link || ' T2
WHERE ACTUAL_AMT_COLL !=0
And CHRG_TRAN_ID = TRAN_ID
AND CHRG_TRAN_DATE = TRAN_DATE
and TARGET_ACID =acid
AND CHRG_PART_TRAN_SRL_NUM is
null
and t1.CHRG_ACID = T3.acid
AND T2.CUST_ID is not null
AND CHRG_TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR''))');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 19...- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. cust is null Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 19 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 20:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.BILL_ID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,20
FROM
(
select
t1.OFFICE_ACCOUNT,
t1.VISION_GL,
t1.SOL_ID VISION_OUC,
t1.TRAN_CCY,
t1.TRAN_TYPE,
round(t1.TRAN_AMT_LCY *
NVL(t5.WASH_RATE,1),2) TRAN_AMT_LCY,
t1.TRAN_DATE,
t1.TRAN_ID,
t1.MIS_CURRENCY,
t1.VALUE_DATE,
t1.TRAN_PARTICULAR,
Trim(substr(tran_particular,
(INSTR(TRAN_PARTICULAR,''['',1) + 1), ((INSTR(TRAN_PARTICULAR,'']'',1) -
1) - (INSTR(TRAN_PARTICULAR,''['',1))))) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
where t1.feed_date ='||''''||G_Current_Business_Date
||''''||'
and t1.mis_currency='||''''||G_Book_Ccy_Code||'''' ||'
and t1.tran_ccy = t5.currency(+)
and TRAN_RMKS =''Amort Interest''
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+)');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.BILL_ID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,20
FROM
(
select
t1.OFFICE_ACCOUNT,
t1.VISION_GL,
t1.SOL_ID VISION_OUC,
t1.TRAN_CCY,
t1.TRAN_TYPE,
round(t1.TRAN_AMT_LCY *
NVL(t5.WASH_RATE,1),2) TRAN_AMT_LCY,
t1.TRAN_DATE,
t1.TRAN_ID,
t1.MIS_CURRENCY,
t1.VALUE_DATE,
t1.TRAN_PARTICULAR,
Trim(substr(tran_particular,
(INSTR(TRAN_PARTICULAR,''['',1) + 1), ((INSTR(TRAN_PARTICULAR,'']'',1) -
1) - (INSTR(TRAN_PARTICULAR,''['',1))))) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
where t1.feed_date ='||''''||G_Current_Business_Date
||''''||'
and t1.mis_currency='||''''||G_Book_Ccy_Code||'''' ||'
and t1.tran_ccy = t5.currency(+)
and TRAN_RMKS =''Amort Interest''
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 20 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 20 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
select
T1.TRAN_DATE,
T1.TRAN_ID,

T1.PART_TRAN_SRL_NUM,

Trim(substr(tran_particular, (INSTR(TRAN_PARTICULAR,''['',1) + 1),


((INSTR(TRAN_PARTICULAR,'']'',1) - 1) -
(INSTR(TRAN_PARTICULAR,''['',1))))) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG T1 ,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
where feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and TRAN_RMKS =''Amort
Interest''
and RUN_status =''N''
AND Trim(substr(tran_particular,
(INSTR(TRAN_PARTICULAR,''['',1) + 1), ((INSTR(TRAN_PARTICULAR,'']'',1) -
1) - (INSTR(TRAN_PARTICULAR,''['',1))))) = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID IS NOT NULL
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
select
T1.TRAN_DATE,
T1.TRAN_ID,

T1.PART_TRAN_SRL_NUM,

Trim(substr(tran_particular, (INSTR(TRAN_PARTICULAR,''['',1) + 1),


((INSTR(TRAN_PARTICULAR,'']'',1) - 1) -
(INSTR(TRAN_PARTICULAR,''['',1))))) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG T1 ,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
where feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and TRAN_RMKS =''Amort
Interest''
and RUN_status =''N''
AND Trim(substr(tran_particular,
(INSTR(TRAN_PARTICULAR,''['',1) + 1), ((INSTR(TRAN_PARTICULAR,'']'',1) -
1) - (INSTR(TRAN_PARTICULAR,''['',1))))) = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID IS NOT NULL
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 20...- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 20 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 20 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 21:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.BILL_ID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,21
FROM
(
select
t1.OFFICE_ACCOUNT,
t1.VISION_GL,
t1.SOL_ID VISION_OUC,
t1.TRAN_CCY,
t1.TRAN_TYPE,
round(t1.TRAN_AMT_LCY *
NVL(t5.WASH_RATE,1),2) TRAN_AMT_LCY,
t1.TRAN_DATE,
t1.TRAN_ID,
t1.MIS_CURRENCY,
t1.VALUE_DATE,
t1.TRAN_PARTICULAR,

Trim(SUBSTR(tran_particular,instr(tran_particular,''-'')+1,
(instr(tran_particular,'':'')-instr(tran_particular,''-''))-1)) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
where feed_date ='||''''||G_Current_Business_Date
||''''||'
and t1.tran_ccy= t5.currency(+)
and
Trim(SUBSTR(tran_particular,instr(tran_particular,''-'')+1,
(instr(tran_particular,'':'')-instr(tran_particular,''-''))-1)) is not
null
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+)');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.BILL_ID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,21
FROM
(
select
t1.OFFICE_ACCOUNT,
t1.VISION_GL,
t1.SOL_ID VISION_OUC,
t1.TRAN_CCY,
t1.TRAN_TYPE,
round(t1.TRAN_AMT_LCY *
NVL(t5.WASH_RATE,1),2) TRAN_AMT_LCY,
t1.TRAN_DATE,
t1.TRAN_ID,
t1.MIS_CURRENCY,
t1.VALUE_DATE,
t1.TRAN_PARTICULAR,

Trim(SUBSTR(tran_particular,instr(tran_particular,''-'')+1,
(instr(tran_particular,'':'')-instr(tran_particular,''-''))-1)) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
where feed_date ='||''''||G_Current_Business_Date
||''''||'
and t1.tran_ccy= t5.currency(+)
and
Trim(SUBSTR(tran_particular,instr(tran_particular,''-'')+1,
(instr(tran_particular,'':'')-instr(tran_particular,''-''))-1)) is not
null
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 21 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 21 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
SELECT * FROM
(
select
TRAN_DATE,
TRAN_ID,
PART_TRAN_SRL_NUM,

Trim(SUBSTR(tran_particular,instr(tran_particular,''-'')+1,
(instr(tran_particular,'':'')-instr(tran_particular,''-''))-1)) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
where feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and
Trim(SUBSTR(tran_particular,instr(tran_particular,''-'')+1,
(instr(tran_particular,'':'')-instr(tran_particular,''-''))-1)) is not
null
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID IS NOT NULL
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
SELECT * FROM
(
select
TRAN_DATE,
TRAN_ID,

PART_TRAN_SRL_NUM,

Trim(SUBSTR(tran_particular,instr(tran_particular,''-'')+1,
(instr(tran_particular,'':'')-instr(tran_particular,''-''))-1)) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
where feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and
Trim(SUBSTR(tran_particular,instr(tran_particular,''-'')+1,
(instr(tran_particular,'':'')-instr(tran_particular,''-''))-1)) is not
null
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID IS NOT NULL
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 21...- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 21 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 21 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 22:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.BILL_ID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,22
FROM
(
select
t1.OFFICE_ACCOUNT,
t1.VISION_GL,
t1.SOL_ID VISION_OUC,
t1.TRAN_CCY,
t1.TRAN_TYPE,
round(t1.TRAN_AMT_LCY *
NVL(t5.WASH_RATE,1),2) TRAN_AMT_LCY,
t1.TRAN_DATE,
t1.TRAN_ID,
t1.MIS_CURRENCY,
t1.VALUE_DATE,
t1.TRAN_PARTICULAR,

Trim(SUBSTR(tran_particular,1,instr(tran_particular,''-'')-1)) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
where feed_date ='||''''||G_Current_Business_Date
||''''||'
and t1.tran_ccy = t5.currency(+)
and
Trim(SUBSTR(tran_particular,1,instr(tran_particular,''-'')-1)) is not
null
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+) ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.BILL_ID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,22
FROM
(
select
t1.OFFICE_ACCOUNT,
t1.VISION_GL,
t1.SOL_ID VISION_OUC,
t1.TRAN_CCY,
t1.TRAN_TYPE,
round(t1.TRAN_AMT_LCY *
NVL(t5.WASH_RATE,1),2) TRAN_AMT_LCY,
t1.TRAN_DATE,
t1.TRAN_ID,
t1.MIS_CURRENCY,
t1.VALUE_DATE,
t1.TRAN_PARTICULAR,

Trim(SUBSTR(tran_particular,1,instr(tran_particular,''-'')-1)) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
where feed_date ='||''''||G_Current_Business_Date
||''''||'
and t1.tran_ccy = t5.currency(+)
and
Trim(SUBSTR(tran_particular,1,instr(tran_particular,''-'')-1)) is not
null
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 22 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 22 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
SELECT * FROM
(
select
TRAN_DATE,
TRAN_ID,

PART_TRAN_SRL_NUM,

Trim(SUBSTR(tran_particular,1,instr(tran_particular,''-'')-1)) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
where feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and
Trim(SUBSTR(tran_particular,1,instr(tran_particular,''-'')-1)) is not
null
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID IS NOT NULL
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
SELECT * FROM
(
select
TRAN_DATE,
TRAN_ID,

PART_TRAN_SRL_NUM,
Trim(SUBSTR(tran_particular,1,instr(tran_particular,''-'')-1)) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
where feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and
Trim(SUBSTR(tran_particular,1,instr(tran_particular,''-'')-1)) is not
null
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID IS NOT NULL
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 22...- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 22 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 22 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 23:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL vision_gl,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
Tran_type,
round(t1.TRAN_AMT_lcy * NVL(WASH_RATE,1),2)
TRAN_AMT_lcy,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,23
from ENRICHMENT_MISSING_TRANS_STG t1, gam' || V_DB_Link
|| ' t2, TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and trim(substr(t1.tran_particular,1,10))=
t2.foracid
and t1.tran_ccy=t5.currency(+)
AND RUN_STATUS=''N'' ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL vision_gl,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
Tran_type,
round(t1.TRAN_AMT_lcy * NVL(WASH_RATE,1),2)
TRAN_AMT_lcy,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,23
from ENRICHMENT_MISSING_TRANS_STG t1, gam' || V_DB_Link
|| ' t2, TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and trim(substr(t1.tran_particular,1,10))=
t2.foracid
and t1.tran_ccy=t5.currency(+)
AND RUN_STATUS=''N'' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 23 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 23 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET
RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND t1.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
select
t1.TRAN_DATE,
t1.TRAN_ID,

t1.PART_TRAN_SRL_NUM
from ENRICHMENT_MISSING_TRANS_STG t1, gam' ||
V_DB_Link || ' t2
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and trim(substr(t1.tran_particular,1,10))=
t2.foracid
AND RUN_STATUS=''N''
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND t1.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
select
t1.TRAN_DATE,
t1.TRAN_ID,

t1.PART_TRAN_SRL_NUM
from ENRICHMENT_MISSING_TRANS_STG t1, gam' ||
V_DB_Link || ' t2
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and trim(substr(t1.tran_particular,1,10))=
t2.foracid
AND RUN_STATUS=''N''
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 23...- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 23 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 23 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 24:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL vision_gl,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
Tran_type,
round(t1.TRAN_AMT_lcy * NVL(WASH_RATE,1),2)
TRAN_AMT_lcy,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,24
from ENRICHMENT_MISSING_TRANS_STG t1, gam' || V_DB_Link
|| ' t2, TEMP_STD_CURRENCY_FEED_STG t5
where t1.tran_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and
trim(substr(tran_particular,instr(tran_particular,'' AC '')+3,11))=
t2.foracid
and t1.tran_ccy = t5.currency(+)
AND RUN_STATUS=''N'' ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL vision_gl,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
Tran_type,
round(t1.TRAN_AMT_lcy * NVL(WASH_RATE,1),2)
TRAN_AMT_lcy,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,24
from ENRICHMENT_MISSING_TRANS_STG t1, gam' || V_DB_Link
|| ' t2, TEMP_STD_CURRENCY_FEED_STG t5
where t1.tran_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and
trim(substr(tran_particular,instr(tran_particular,'' AC '')+3,11))=
t2.foracid
and t1.tran_ccy = t5.currency(+)
AND RUN_STATUS=''N'' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 24 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 24 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND tran_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
select
t1.TRAN_TYPE,
t1.TRAN_DATE,
t1.TRAN_ID,
t1.PART_TRAN_SRL_NUM
from ENRICHMENT_MISSING_TRANS_STG t1, gam' ||
V_DB_Link || ' t2
where t1.tran_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and
trim(substr(tran_particular,instr(tran_particular,'' AC '')+3,11))=
t2.foracid
AND RUN_STATUS=''N''
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND tran_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
select
t1.TRAN_TYPE,
t1.TRAN_DATE,
t1.TRAN_ID,

t1.PART_TRAN_SRL_NUM
from ENRICHMENT_MISSING_TRANS_STG t1, gam' ||
V_DB_Link || ' t2
where t1.tran_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and
trim(substr(tran_particular,instr(tran_particular,'' AC '')+3,11))=
t2.foracid
AND RUN_STATUS=''N''
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 24...- FYI.');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 24 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 24 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 25:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.BILL_ID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,25
FROM
(
select
OFFICE_ACCOUNT,
VISION_GL,
SOL_ID VISION_OUC,
TRAN_CCY,
TRAN_TYPE,
round(TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT_LCY,
TRAN_DATE,
TRAN_ID,
MIS_CURRENCY,
VALUE_DATE,
TRAN_PARTICULAR,

Trim(substr(tran_particular,instr(tran_particular,''^['')+2,(instr(tran_p
articular,'']^'',2)-(instr(tran_particular,''^['')+2)))) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG t1,
TEMP_STD_CURRENCY_FEED_STG t5
where tran_date ='||''''||G_Current_Business_Date
||''''||'
and t1.tran_ccy=t5.currency(+)
and TRAN_RMKS =''Amort Interest''
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+) ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.BILL_ID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,25
FROM
(
select
OFFICE_ACCOUNT,
VISION_GL,
SOL_ID VISION_OUC,
TRAN_CCY,
TRAN_TYPE,
round(TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT_LCY,
TRAN_DATE,
TRAN_ID,
MIS_CURRENCY,
VALUE_DATE,
TRAN_PARTICULAR,

Trim(substr(tran_particular,instr(tran_particular,''^['')+2,(instr(tran_p
articular,'']^'',2)-(instr(tran_particular,''^['')+2)))) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG t1,
TEMP_STD_CURRENCY_FEED_STG t5
where tran_date ='||''''||G_Current_Business_Date
||''''||'
and t1.tran_ccy=t5.currency(+)
and TRAN_RMKS =''Amort Interest''
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 25 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 25 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
select
T1.TRAN_DATE,
T1.TRAN_ID,

T1.TRAN_PARTICULAR,

T1.PART_TRAN_SRL_NUM
from ENRICHMENT_MISSING_TRANS_STG T1, FBM' ||
V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
where tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and TRAN_RMKS =''Amort
Interest''
and RUN_status =''N''
AND
Trim(substr(t1.tran_particular,instr(t1.tran_particular,''^['')+2,(instr(
t1.tran_particular,'']^'',2)-(instr(t1.tran_particular,''^['')+2)))) =
T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID IS NOT NULL
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
select
T1.TRAN_DATE,
T1.TRAN_ID,

T1.TRAN_PARTICULAR,

T1.PART_TRAN_SRL_NUM
from ENRICHMENT_MISSING_TRANS_STG T1, FBM' ||
V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
where tran_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and TRAN_RMKS =''Amort
Interest''
and RUN_status =''N''
AND
Trim(substr(t1.tran_particular,instr(t1.tran_particular,''^['')+2,(instr(
t1.tran_particular,'']^'',2)-(instr(t1.tran_particular,''^['')+2)))) =
T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID IS NOT NULL
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 25...- FYI.');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 25 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 25 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 26:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.BILL_ID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,26
FROM
(
select
OFFICE_ACCOUNT,
VISION_GL,
SOL_ID VISION_OUC,
TRAN_CCY,
TRAN_TYPE,
round(TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT_LCY,
TRAN_DATE,
TRAN_ID,
MIS_CURRENCY,
VALUE_DATE,
TRAN_PARTICULAR,
Trim(tran_particular) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
where feed_date ='||''''||G_Current_Business_Date
||''''||'
and t1.tran_ccy=t5.currency(+)
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+) ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.BILL_ID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,26
FROM
(
select
OFFICE_ACCOUNT,
VISION_GL,
SOL_ID VISION_OUC,
TRAN_CCY,
TRAN_TYPE,
round(TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT_LCY,
TRAN_DATE,
TRAN_ID,
MIS_CURRENCY,
VALUE_DATE,
TRAN_PARTICULAR,
Trim(tran_particular) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
where feed_date ='||''''||G_Current_Business_Date
||''''||'
and t1.tran_ccy=t5.currency(+)
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 26 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 26 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T6 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND (tran_id,tran_date,PART_TRAN_SRL_NUM)
in (select t1.tran_id ,t1.tran_date,t1.PART_TRAN_SRL_NUM from (
select t2.tran_id tran_id,t2.tran_date
tran_date,t2.PART_TRAN_SRL_NUM ,Trim(tran_particular) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG t2
where feed_date ='||''''||G_Current_Business_Date
||''''||'
and RUN_status =''N'' ) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+) )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T6 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND (tran_id,tran_date,PART_TRAN_SRL_NUM)
in (select t1.tran_id ,t1.tran_date,t1.PART_TRAN_SRL_NUM from (
select t2.tran_id tran_id,t2.tran_date
tran_date,t2.PART_TRAN_SRL_NUM ,Trim(tran_particular) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG t2
where feed_date ='||''''||G_Current_Business_Date
||''''||'
and RUN_status =''N'' ) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+) ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 26..- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 26 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 26 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 27:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,
QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.BILL_ID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,27
FROM
(
select
OFFICE_ACCOUNT,
VISION_GL,
SOL_ID VISION_OUC,
TRAN_CCY,
TRAN_TYPE,
round(TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT_LCY,
TRAN_DATE,
TRAN_ID,
MIS_CURRENCY,
VALUE_DATE,
TRAN_PARTICULAR,
TRIM(replace(tran_particular,''AMENDMENT OF
PURPOSE'','''')) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
where tran_date ='||''''||G_Current_Business_Date
||''''||'
and tran_particular like ''%AMENDMENT OF
PURPOSE%''
and t1.tran_ccy = t5.currency(+)
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,
QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.BILL_ID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,27
FROM
(
select
OFFICE_ACCOUNT,
VISION_GL,
SOL_ID VISION_OUC,
TRAN_CCY,
TRAN_TYPE,
round(TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT_LCY,
TRAN_DATE,
TRAN_ID,
MIS_CURRENCY,
VALUE_DATE,
TRAN_PARTICULAR,
TRIM(replace(tran_particular,''AMENDMENT OF
PURPOSE'','''')) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
where tran_date ='||''''||G_Current_Business_Date
||''''||'
and tran_particular like ''%AMENDMENT OF
PURPOSE%''
and t1.tran_ccy = t5.currency(+)
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 27 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 27 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND t1.tran_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
SELECT * FROM
(
select
TRAN_DATE,
TRAN_ID,
PART_TRAN_SRL_NUM,
TRIM(replace(tran_particular,''AMENDMENT
OF PURPOSE'','''')) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
where TRAN_date ='||''''||G_Current_Business_Date
||''''||'
and tran_particular like
''%AMENDMENT OF PURPOSE%''
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM ) ');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND t1.tran_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
SELECT * FROM
(
select
TRAN_DATE,
TRAN_ID,
PART_TRAN_SRL_NUM,
TRIM(replace(tran_particular,''AMENDMENT
OF PURPOSE'','''')) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
where TRAN_date ='||''''||G_Current_Business_Date
||''''||'
and tran_particular like
''%AMENDMENT OF PURPOSE%''
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 27..- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 27 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 27 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 28:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.BILL_ID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,28
FROM
(
select
OFFICE_ACCOUNT,
VISION_GL,
SOL_ID VISION_OUC,
TRAN_CCY,
TRAN_TYPE,
round(TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT_LCY,
TRAN_DATE,
TRAN_ID,
MIS_CURRENCY,
VALUE_DATE,
TRAN_PARTICULAR,
TRIM(replace(tran_particular,''BILL ID :
'','''')) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
where tran_date ='||''''||G_Current_Business_Date
||''''||'
and tran_particular like ''%BILL ID : %''
and t1.tran_ccy = t5.currency(+)
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.BILL_ID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,28
FROM
(
select
OFFICE_ACCOUNT,
VISION_GL,
SOL_ID VISION_OUC,
TRAN_CCY,
TRAN_TYPE,
round(TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT_LCY,
TRAN_DATE,
TRAN_ID,
MIS_CURRENCY,
VALUE_DATE,
TRAN_PARTICULAR,
TRIM(replace(tran_particular,''BILL ID :
'','''')) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
where tran_date ='||''''||G_Current_Business_Date
||''''||'
and tran_particular like ''%BILL ID : %''
and t1.tran_ccy = t5.currency(+)
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 28 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 28 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND tran_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
SELECT * FROM
(
select
TRAN_DATE,
TRAN_ID,
PART_TRAN_SRL_NUM,
TRIM(replace(tran_particular,''BILL
ID : '','''')) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
where tran_date ='||''''||G_Current_Business_Date
||''''||'
and tran_particular like ''%BILL ID
: %''
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND tran_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
SELECT * FROM
(
select
TRAN_DATE,
TRAN_ID,
PART_TRAN_SRL_NUM,
TRIM(replace(tran_particular,''BILL
ID : '','''')) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
where tran_date ='||''''||G_Current_Business_Date
||''''||'
and tran_particular like ''%BILL ID
: %''
and RUN_status =''N''
) T1,
FBM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.BILL_ID
AND CASE When T2.BP_ACID is null Then
T2.OPER_CHARGE_ACID ELSE T2.BP_ACID END = T3.ACID
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 28..- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 28 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 28 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 29:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
TRIM(T2.FORACID) CONTRACT_ID,
TRIM(T1.OFFICE_ACCOUNT) OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' TRAN_CCY,
TRAN_TYPE TRAN_TYPE,
round(TRAN_AMT_LCY * NVL(WASH_RATE,1),2)
TRAN_AMT_LCY,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
T1.TRAN_ID,
MIS_CURRENCY MIS_CURRENCY,
NVL(VALUE_DATE,
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR''))
VALUE_DATE,
T2.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,29
from ENRICHMENT_MISSING_TRANS_STG T1, gam' || V_DB_Link || '
t2 ,TEMP_STD_CURRENCY_FEED_STG t5
where tran_date = '||''''||G_Current_Business_Date
||''''||' AND RUN_STATUS =''N''
and (TRAN_RMKS LIKE ''Interest run'' OR TRAN_RMKS
LIKE ''%Book Interest%'')
and
Trim(substr(tran_particular,instr(tran_particular,''['')+1,instr(tran_par
ticular,'']'')-3 )) = t2.foracid
and t1.tran_ccy = t5.currency(+)
and
Trim(substr(tran_particular,instr(tran_particular,''['')+1,instr(tran_par
ticular,'']'')-3 )) is not null ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
TRIM(T2.FORACID) CONTRACT_ID,
TRIM(T1.OFFICE_ACCOUNT) OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' TRAN_CCY,
TRAN_TYPE TRAN_TYPE,
round(TRAN_AMT_LCY * NVL(WASH_RATE,1),2)
TRAN_AMT_LCY,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
T1.TRAN_ID,
MIS_CURRENCY MIS_CURRENCY,
NVL(VALUE_DATE,
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR''))
VALUE_DATE,
T2.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,29
from ENRICHMENT_MISSING_TRANS_STG T1, gam' || V_DB_Link || '
t2 ,TEMP_STD_CURRENCY_FEED_STG t5
where tran_date = '||''''||G_Current_Business_Date
||''''||' AND RUN_STATUS =''N''
and (TRAN_RMKS LIKE ''Interest run'' OR TRAN_RMKS
LIKE ''%Book Interest%'')
and
Trim(substr(tran_particular,instr(tran_particular,''['')+1,instr(tran_par
ticular,'']'')-3 )) = t2.foracid
and t1.tran_ccy = t5.currency(+)
and
Trim(substr(tran_particular,instr(tran_particular,''['')+1,instr(tran_par
ticular,'']'')-3 )) is not null ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 29 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 29 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND t1.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
select
T1.tran_date,
T1.TRAN_ID,
PART_TRAN_SRL_NUM
from ENRICHMENT_MISSING_TRANS_STG T1, gam' || V_DB_Link || '
t2 where
feed_date = '||''''||G_Current_Business_Date ||''''||' AND
RUN_STATUS =''N''
and (TRAN_RMKS LIKE ''Interest run'' OR TRAN_RMKS LIKE ''%Book
Interest%'')
and
Trim(substr(tran_particular,instr(tran_particular,''['')+1,instr(tran_par
ticular,'']'')-3 )) = t2.foracid
and
Trim(substr(tran_particular,instr(tran_particular,''['')+1,instr(tran_par
ticular,'']'')-3 )) is not null
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND t1.TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
select
T1.tran_date,
T1.TRAN_ID,
PART_TRAN_SRL_NUM
from ENRICHMENT_MISSING_TRANS_STG T1, gam' || V_DB_Link || '
t2 where
feed_date = '||''''||G_Current_Business_Date ||''''||' AND
RUN_STATUS =''N''
and (TRAN_RMKS LIKE ''Interest run'' OR TRAN_RMKS LIKE ''%Book
Interest%'')
and
Trim(substr(tran_particular,instr(tran_particular,''['')+1,instr(tran_par
ticular,'']'')-3 )) = t2.foracid
and
Trim(substr(tran_particular,instr(tran_particular,''['')+1,instr(tran_par
ticular,'']'')-3 )) is not null
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 29..- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 29 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 29 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 30:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T2.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T2.VISION_GL VISION_GL,
T2.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T2.TRAN_TYPE TRAN_TYPE,
round(TRAN_AMT_LCY * NVL(WASH_RATE,1),2)
TRAN_AMT,
T2.TRAN_DATE,
T2.TRAN_ID,
T2.MIS_CURRENCY MIS_CURRENCY,

NVL(T2.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,30
FROM
CXL' || V_DB_Link || ' T1,
ENRICHMENT_MISSING_TRANS_STG t2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4,
TEMP_STD_CURRENCY_FEED_STG t5
WHERE CHRG_TRAN_ID = t2.TRAN_ID
AND CHRG_TRAN_DATE = t2.TRAN_DATE
AND t1.CHRG_ACID =t3.acid
AND T1.ACTUAL_AMT_COLL = T2.TRAN_AMT_LCY
AND T1.CUST_ID = T4.CUST_ID(+)
and t2.tran_ccy = t5.currency(+)
AND T3.CUST_ID IS NOT NULL
AND T2.RUN_STATUS =''N''
AND T2.COUNTRY = '||''''||P_Country||'''' ||'
AND T2.LE_BOOK = '||''''||P_Le_Book||'''' ||'
AND T2.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T1.EVENT_TYPE IN (''SIE'',''SIF'') ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T2.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T2.VISION_GL VISION_GL,
T2.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T2.TRAN_TYPE TRAN_TYPE,
round(TRAN_AMT_LCY * NVL(WASH_RATE,1),2)
TRAN_AMT,
T2.TRAN_DATE,
T2.TRAN_ID,
T2.MIS_CURRENCY MIS_CURRENCY,

NVL(T2.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,30
FROM
CXL' || V_DB_Link || ' T1,
ENRICHMENT_MISSING_TRANS_STG t2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4,
TEMP_STD_CURRENCY_FEED_STG t5
WHERE CHRG_TRAN_ID = t2.TRAN_ID
AND CHRG_TRAN_DATE = t2.TRAN_DATE
AND t1.CHRG_ACID =t3.acid
AND T1.ACTUAL_AMT_COLL = T2.TRAN_AMT_LCY
AND T1.CUST_ID = T4.CUST_ID(+)
and t2.tran_ccy = t5.currency(+)
AND T3.CUST_ID IS NOT NULL
AND T2.RUN_STATUS =''N''
AND T2.COUNTRY = '||''''||P_Country||'''' ||'
AND T2.LE_BOOK = '||''''||P_Le_Book||'''' ||'
AND T2.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T1.EVENT_TYPE IN (''SIE'',''SIF'') ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 30 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 30 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG t1 SET
RUN_STATUS =''Y''
WHERE
COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
SELECT
T2.COUNTRY,T2.LE_BOOK,T2.TRAN_DATE,T2.TRAN_ID,T2.TRAN_AMT_LCY
FROM
CXL' || V_DB_Link || ' T1,

ENRICHMENT_MISSING_TRANS_STG t2,
GAM' ||
V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE T1.CHRG_TRAN_ID =
t2.TRAN_ID
AND T1.CHRG_TRAN_DATE =
t2.TRAN_DATE
and t1.CHRG_ACID =t3.acid
AND T1.ACTUAL_AMT_COLL = T2.TRAN_AMT_LCY
AND T1.CUST_ID = T4.CUST_ID(+)
AND T3.CUST_ID IS NOT
NULL
AND T2.RUN_STATUS =''N''
AND T2.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T1.EVENT_TYPE IN (''SIE'',''SIF'')
) T2
WHERE
T1.TRAN_DATE = T2.TRAN_DATE
AND T1.TRAN_ID = T2.TRAN_ID
AND T1.TRAN_AMT_LCY = T2.TRAN_AMT_LCY
AND T1.COUNTRY = T2.COUNTRY
AND T1.LE_BOOK = T2.LE_BOOK)');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG t1 SET RUN_STATUS =''Y''
WHERE
COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
SELECT
T2.COUNTRY,T2.LE_BOOK,T2.TRAN_DATE,T2.TRAN_ID,T2.TRAN_AMT_LCY
FROM
CXL' || V_DB_Link || ' T1,

ENRICHMENT_MISSING_TRANS_STG t2,
GAM' ||
V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE T1.CHRG_TRAN_ID =
t2.TRAN_ID
AND T1.CHRG_TRAN_DATE =
t2.TRAN_DATE
and t1.CHRG_ACID =t3.acid
AND T1.ACTUAL_AMT_COLL = T2.TRAN_AMT_LCY
AND T1.CUST_ID = T4.CUST_ID(+)
AND T3.CUST_ID IS NOT
NULL
AND T2.RUN_STATUS =''N''
AND T2.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND T1.EVENT_TYPE IN (''SIE'',''SIF'')
) T2
WHERE
T1.TRAN_DATE = T2.TRAN_DATE
AND T1.TRAN_ID = T2.TRAN_ID
AND T1.TRAN_AMT_LCY = T2.TRAN_AMT_LCY
AND T1.COUNTRY = T2.COUNTRY
AND T1.LE_BOOK = T2.LE_BOOK)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 30..- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 30 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 30 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET
RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N'' and sol_id like
''%19''
and exists
(select ''x'' from treasury_financial_feed_stg t2
where t1.vision_gl=t2.vision_gl and t1.tran_type=t2.tran_type
and t1.office_account=t2.office_account and
t1.tran_amt_lcy =t2.tran_amt and t1.feed_date=t2.feed_date) ');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N'' and sol_id like
''%19''
and exists
(select ''x'' from treasury_financial_feed_stg t2
where t1.vision_gl=t2.vision_gl and t1.tran_type=t2.tran_type
and t1.office_account=t2.office_account and
t1.tran_amt_lcy =t2.tran_amt and t1.feed_date=t2.feed_date)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 30..- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 30 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 30 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 31:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round(TRAN_AMT_LCY * NVL(WASH_RATE,1),2)
TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,31
FROM
ENRICHMENT_MISSING_TRANS_STG t1,
gam' || V_DB_Link || ' t3, TEMP_STD_CURRENCY_FEED_STG
t5,
PYRh' || V_DB_Link || ' t4, sih' || V_DB_Link || ' si
where t1.run_status =''N''
and t1.feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and trim(t1.tran_particular) = trim(t4.PR_SRL_NUM )
and t3.acid=si.tgt_acid
and t1.tran_ccy=t5.currency(+)
AND RUN_STATUS=''N''
and t4.PR_B2K_ID = si.SI_SRL_NUM
AND EXISTS (SELECT ''x'' FROM
ENRICHMENT_MISSING_TRANS_STG X1
WHERE X1.TRAN_ID=T1.TRAN_ID AND
T1.TRAN_DATE=X1.TRAN_DATE
GROUP BY GL_SUB_HEAD_CODE,mis_currency HAVING
COUNT(1) <2) ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round(TRAN_AMT_LCY * NVL(WASH_RATE,1),2)
TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,31
FROM
ENRICHMENT_MISSING_TRANS_STG t1,
gam' || V_DB_Link || ' t3, TEMP_STD_CURRENCY_FEED_STG
t5,
PYRh' || V_DB_Link || ' t4, sih' || V_DB_Link || ' si
where t1.run_status =''N''
and t1.feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and trim(t1.tran_particular) = trim(t4.PR_SRL_NUM )
and t3.acid=si.tgt_acid
and t1.tran_ccy=t5.currency(+)
AND RUN_STATUS=''N''
and t4.PR_B2K_ID = si.SI_SRL_NUM
AND EXISTS (SELECT ''x'' FROM
ENRICHMENT_MISSING_TRANS_STG X1
WHERE X1.TRAN_ID=T1.TRAN_ID AND
T1.TRAN_DATE=X1.TRAN_DATE
GROUP BY GL_SUB_HEAD_CODE,mis_currency HAVING
COUNT(1) <2)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 31 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 31 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
where
(T1.TRAN_DATE,T1.TRAN_ID,T1.TRAN_AMT_LCY,T1.COUNTRY,T1.LE_BOOK) in
( select
T1.TRAN_DATE,T1.TRAN_ID,T1.TRAN_AMT_LCY,T1.COUNTRY,T1.LE_BOOK from
ENRICHMENT_MISSING_TRANS_STG t1,
gam' || V_DB_Link || ' t3,
PYRh' || V_DB_Link || ' t4, sih' || V_DB_Link
|| ' si
where t1.run_status =''N''
and t1.feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and trim(t1.tran_particular) =
trim(t4.PR_SRL_NUM )
and t3.acid=si.tgt_acid
and t4.PR_B2K_ID = si.SI_SRL_NUM
AND EXISTS (SELECT ''x'' FROM
ENRICHMENT_MISSING_TRANS_STG X1
WHERE X1.TRAN_ID=T1.TRAN_ID AND
T1.TRAN_DATE=X1.TRAN_DATE
and X1.feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
GROUP BY GL_SUB_HEAD_CODE,mis_currency HAVING
COUNT(1) <2)) ');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
where
(T1.TRAN_DATE,T1.TRAN_ID,T1.TRAN_AMT_LCY,T1.COUNTRY,T1.LE_BOOK) in
( select
T1.TRAN_DATE,T1.TRAN_ID,T1.TRAN_AMT_LCY,T1.COUNTRY,T1.LE_BOOK from
ENRICHMENT_MISSING_TRANS_STG t1,
gam' || V_DB_Link || ' t3,
PYRh' || V_DB_Link || ' t4, sih' || V_DB_Link
|| ' si
where t1.run_status =''N''
and t1.feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and trim(t1.tran_particular) =
trim(t4.PR_SRL_NUM )
and t3.acid=si.tgt_acid
and t4.PR_B2K_ID = si.SI_SRL_NUM
AND EXISTS (SELECT ''x'' FROM
ENRICHMENT_MISSING_TRANS_STG X1
WHERE X1.TRAN_ID=T1.TRAN_ID AND
T1.TRAN_DATE=X1.TRAN_DATE
and X1.feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
GROUP BY GL_SUB_HEAD_CODE,mis_currency HAVING
COUNT(1) <2) ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 31..- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 31 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 31 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 32:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round( T1.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,32
FROM
ENRICHMENT_MISSING_TRANS_STG t1,
TEMP_STD_CURRENCY_FEED_STG T5,
gam' || V_DB_Link || ' t3
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and t1.tran_ccy=t5.currency(+)
and trim(t1.tran_particular) = trim(t3.foracid )
and NOT EXISTS (
SELECT ''x'' From
TEMP_TRADE_FEED_STG T3
Where t1.tran_date =
t3.tran_date
AND t1.tran_id = t3.tran_id)
AND Not exists (select ''x'' from
ENRICHMENT_FEED_STG t2
where COUNTRY
='||''''||P_Country||'''' ||'
AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND FEED_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t1.country
=t2.country
and t1.le_book
=t2.le_book
and t1.feed_date
=t2.feed_date
And t1.tran_id
=t2.tran_id ) ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round( T1.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,32
FROM
ENRICHMENT_MISSING_TRANS_STG t1,
TEMP_STD_CURRENCY_FEED_STG T5,
gam' || V_DB_Link || ' t3
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and t1.tran_ccy=t5.currency(+)
and trim(t1.tran_particular) = trim(t3.foracid )
and NOT EXISTS (
SELECT ''x'' From
TEMP_TRADE_FEED_STG T3
Where t1.tran_date =
t3.tran_date
AND t1.tran_id = t3.tran_id)
and Not exists (select ''x'' from
ENRICHMENT_FEED_STG t2
where COUNTRY
='||''''||P_Country||'''' ||'
AND LE_BOOK
='||''''||P_Le_Book||'''' ||'
AND FEED_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t1.country
=t2.country
and t1.le_book
=t2.le_book
and t1.feed_date
=t2.feed_date
And t1.tran_id
=t2.tran_id )');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 32 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 32 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET
RUN_STATUS =''Y''
where
(T1.TRAN_DATE,T1.TRAN_ID,T1.TRAN_AMT_LCY,T1.COUNTRY,T1.LE_BOOK) in
( select
T1.TRAN_DATE,T1.TRAN_ID,T1.TRAN_AMT_LCY,T1.COUNTRY,T1.LE_BOOK from
ENRICHMENT_MISSING_TRANS_STG t1,
gam' || V_DB_Link || ' t3
where t1.run_status =''N''
and t1.feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and trim(t1.tran_particular) =
trim(t3.foracid ))');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
where
(T1.TRAN_DATE,T1.TRAN_ID,T1.TRAN_AMT_LCY,T1.COUNTRY,T1.LE_BOOK) in
( select
T1.TRAN_DATE,T1.TRAN_ID,T1.TRAN_AMT_LCY,T1.COUNTRY,T1.LE_BOOK from
ENRICHMENT_MISSING_TRANS_STG t1,
gam' || V_DB_Link || ' t3
where t1.run_status =''N''
and t1.feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and trim(t1.tran_particular) =
trim(t3.foracid ))');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 32..- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 32 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 32 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 61:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
T2.FORACID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
tran_type,
round(T5.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.REF_CRNCY_CODE MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T2.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,61
from (select distinct
t1.tran_id,tran_date,Trim(substr(t1.tran_particular,instr(t1.tran_particu
lar,''^'')+1,instr(t1.tran_particular,''^'',2)-2 )) tran_particular,
T1.REF_CRNCY_CODE,t1.value_date from htd' || V_DB_Link || ' t1
where tran_date= '||''''||G_Current_Business_Date ||''''||' and
part_tran_type =''D'' and (tran_id,tran_date ) in (
select tran_id,tran_date from ENRICHMENT_MISSING_TRANS_STG
where tran_date= '||''''||G_Current_Business_Date ||''''||' AND
run_status =''N''
and tran_particular =''Consolidated Interest collection'')
and t1.tran_id not in (select distinct tran_id from ( select
tran_id,tran_date,count(1) from htd' || V_DB_Link || ' a
where a.tran_date= '||''''||G_Current_Business_Date ||''''||'
and a.part_tran_type =''D'' and a.tran_id =t1.tran_id and
a.tran_date=t1.tran_date
group by tran_id,tran_date having count(1)>1))
) T1 ,
ENRICHMENT_MISSING_TRANS_STG t5,gam' || V_DB_Link || '
t2,gam' || V_DB_Link || ' t3,
TEMP_STD_CURRENCY_FEED_STG t6
where t1.tran_particular =t2.foracid
and t1.tran_id=t5.tran_id
and t1.tran_date=t5.tran_date
and t5.office_account =t3.foracid
and t5.tran_ccy = t6.currency(+) ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
T2.FORACID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
tran_type,
round(T5.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.REF_CRNCY_CODE MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T2.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,61
from (select distinct
t1.tran_id,tran_date,Trim(substr(t1.tran_particular,instr(t1.tran_particu
lar,''^'')+1,instr(t1.tran_particular,''^'',2)-2 )) tran_particular,
T1.REF_CRNCY_CODE,t1.value_date from htd' || V_DB_Link || ' t1
where tran_date= '||''''||G_Current_Business_Date ||''''||' and
part_tran_type =''D'' and (tran_id,tran_date ) in (
select tran_id,tran_date from ENRICHMENT_MISSING_TRANS_STG
where tran_date= '||''''||G_Current_Business_Date ||''''||' AND
run_status =''N''
and tran_particular =''Consolidated Interest collection'')
and t1.tran_id not in (select distinct tran_id from ( select
tran_id,tran_date,count(1) from htd' || V_DB_Link || ' a
where a.tran_date= '||''''||G_Current_Business_Date ||''''||'
and a.part_tran_type =''D'' and a.tran_id =t1.tran_id and
a.tran_date=t1.tran_date
group by tran_id,tran_date having count(1)>1))
) T1 ,
ENRICHMENT_MISSING_TRANS_STG t5,gam' || V_DB_Link || '
t2,gam' || V_DB_Link || ' t3,
TEMP_STD_CURRENCY_FEED_STG t6
where t1.tran_particular =t2.foracid
and t1.tran_id=t5.tran_id
and t1.tran_date=t5.tran_date
and t5.office_account =t3.foracid
and t5.tran_ccy = t6.currency(+) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 61 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 61 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
where (T1.TRAN_DATE,T1.TRAN_ID,tran_particular)
in
( SELECT
T1.TRAN_DATE,
T1.TRAN_ID,t5.tran_particular
from (select distinct
t1.tran_id,tran_date,Trim(substr(t1.tran_particular,instr(t1.tran_particu
lar,''^'')+1,instr(t1.tran_particular,''^'',2)-2 )) tran_particular,
T1.REF_CRNCY_CODE,t1.value_date from htd' || V_DB_Link || ' t1
where tran_date= '||''''||G_Current_Business_Date ||''''||' and
part_tran_type =''D'' and (tran_id,tran_date ) in (
select tran_id,tran_date from ENRICHMENT_MISSING_TRANS_STG
where tran_date= '||''''||G_Current_Business_Date ||''''||' AND
run_status =''N''
and tran_particular =''Consolidated Interest collection'') ) T1
,ENRICHMENT_MISSING_TRANS_STG t5,gam' || V_DB_Link || ' t2,gam' ||
V_DB_Link || ' t3
where t1.tran_particular =t2.foracid
and t1.tran_id=t5.tran_id
and t1.tran_date=t5.tran_date
and t5.office_account =t3.foracid)');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
where (T1.TRAN_DATE,T1.TRAN_ID,tran_particular)
in
( SELECT
T1.TRAN_DATE,
T1.TRAN_ID,t5.tran_particular
from (select distinct
t1.tran_id,tran_date,Trim(substr(t1.tran_particular,instr(t1.tran_particu
lar,''^'')+1,instr(t1.tran_particular,''^'',2)-2 )) tran_particular,
T1.REF_CRNCY_CODE,t1.value_date from htd' || V_DB_Link || ' t1
where tran_date= '||''''||G_Current_Business_Date ||''''||' and
part_tran_type =''D'' and (tran_id,tran_date ) in (
select tran_id,tran_date from ENRICHMENT_MISSING_TRANS_STG
where tran_date= '||''''||G_Current_Business_Date ||''''||' AND
run_status =''N''
and tran_particular =''Consolidated Interest collection'') ) T1
,ENRICHMENT_MISSING_TRANS_STG t5,gam' || V_DB_Link || ' t2,gam' ||
V_DB_Link || ' t3
where t1.tran_particular =t2.foracid
and t1.tran_id=t5.tran_id
and t1.tran_date=t5.tran_date
and t5.office_account =t3.foracid)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 61..- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 61 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 61 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 33:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
T2.FORACID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
tran_type tran_type,
round(TRAN_AMT_LCY * NVL(WASH_RATE,1),2)
TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T2.SCHM_TYPE,
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,33
from
ENRICHMENT_MISSING_TRANS_STG T1 , gam' || V_DB_Link || ' t2,
TEMP_STD_CURRENCY_FEED_STG t3
where
Trim(substr(tran_particular,instr(tran_particular,''^'')+1,instr(tran_par
ticular,''^'',2)-2 )) =t2.foracid
and tran_date= '||''''||G_Current_Business_Date ||''''||' AND
run_status =''N''
and t1.tran_ccy = t3.currency(+)
and (TRAN_RMKS LIKE ''Interest run'' OR TRAN_RMKS LIKE
''%Book Interest%'') ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
T2.FORACID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
tran_type tran_type,
round(TRAN_AMT_LCY * NVL(WASH_RATE,1),2)
TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T2.SCHM_TYPE,
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,33
from
ENRICHMENT_MISSING_TRANS_STG T1 , gam' || V_DB_Link || ' t2,
TEMP_STD_CURRENCY_FEED_STG t3
where
Trim(substr(tran_particular,instr(tran_particular,''^'')+1,instr(tran_par
ticular,''^'',2)-2 )) =t2.foracid
and tran_date= '||''''||G_Current_Business_Date ||''''||' AND
run_status =''N''
and t1.tran_ccy = t3.currency(+)
and (TRAN_RMKS LIKE ''Interest run'' OR TRAN_RMKS LIKE
''%Book Interest%'') ');
G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 33 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 33 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
where (T1.TRAN_DATE,T1.TRAN_ID) in
( SELECT
T1.TRAN_DATE,
T1.TRAN_ID
from
ENRICHMENT_MISSING_TRANS_STG T1 , gam' || V_DB_Link || ' t2
where
Trim(substr(tran_particular,instr(tran_particular,''^'')+1,instr(tran_par
ticular,''^'',2)-2 )) =t2.foracid
and tran_date= '||''''||G_Current_Business_Date ||''''||' AND
run_status =''N''
and (TRAN_RMKS LIKE ''Interest run'' OR TRAN_RMKS LIKE
''%Book Interest%'') ) ');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
where (T1.TRAN_DATE,T1.TRAN_ID) in
( SELECT
T1.TRAN_DATE,
T1.TRAN_ID
from
ENRICHMENT_MISSING_TRANS_STG T1 , gam' || V_DB_Link || ' t2
where
Trim(substr(tran_particular,instr(tran_particular,''^'')+1,instr(tran_par
ticular,''^'',2)-2 )) =t2.foracid
and tran_date= '||''''||G_Current_Business_Date ||''''||' AND
run_status =''N''
and (TRAN_RMKS LIKE ''Interest run'' OR TRAN_RMKS LIKE
''%Book Interest%'') )');
G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 61..- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 33 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 33 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 34:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
T2.FORACID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
tran_type tran_type,
round(T1.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
T2.SCHM_TYPE,
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,34
from
ENRICHMENT_MISSING_TRANS_STG T1 , gam' || V_DB_Link || '
t2,TEMP_STD_CURRENCY_FEED_STG t5
where
Trim(substr(tran_particular,instr(tran_particular,''^['')+2,instr(tran_pa
rticular,'']^'',2)-3 )) =t2.foracid
and tran_date= '||''''||G_Current_Business_Date ||''''||' AND
run_status =''N''
and t1.tran_ccy=t5.currency(+)
and (TRAN_RMKS LIKE ''Interest run'' OR TRAN_RMKS LIKE
''%Book Interest%'')');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
T2.FORACID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
tran_type tran_type,
round(T1.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T2.SCHM_TYPE,
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,34
from
ENRICHMENT_MISSING_TRANS_STG T1 , gam' || V_DB_Link || '
t2,TEMP_STD_CURRENCY_FEED_STG t5
where
Trim(substr(tran_particular,instr(tran_particular,''^['')+2,instr(tran_pa
rticular,'']^'',2)-3 )) =t2.foracid
and tran_date= '||''''||G_Current_Business_Date ||''''||' AND
run_status =''N''
and t1.tran_ccy=t5.currency(+)
and (TRAN_RMKS LIKE ''Interest run'' OR TRAN_RMKS LIKE
''%Book Interest%'') ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 34 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 34 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
where (T1.TRAN_DATE,T1.TRAN_ID) in
( SELECT
T1.TRAN_DATE,
T1.TRAN_ID
from
ENRICHMENT_MISSING_TRANS_STG T1 , gam' || V_DB_Link || ' t2
where
Trim(substr(tran_particular,instr(tran_particular,''^['')+2,instr(tran_pa
rticular,'']^'',2)-3 )) =t2.foracid
and tran_date= '||''''||G_Current_Business_Date ||''''||' AND
run_status =''N''
and (TRAN_RMKS LIKE ''Interest run'' OR TRAN_RMKS LIKE
''%Book Interest%'') ) ');
EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
where (T1.TRAN_DATE,T1.TRAN_ID) in
( SELECT
T1.TRAN_DATE,
T1.TRAN_ID
from
ENRICHMENT_MISSING_TRANS_STG T1 , gam' || V_DB_Link || ' t2
where
Trim(substr(tran_particular,instr(tran_particular,''^['')+2,instr(tran_pa
rticular,'']^'',2)-3 )) =t2.foracid
and tran_date= '||''''||G_Current_Business_Date ||''''||' AND
run_status =''N''
and (TRAN_RMKS LIKE ''Interest run'' OR TRAN_RMKS LIKE
''%Book Interest%'') )');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 34..- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 34 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 34 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 35:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round(TRAN_AMT_LCY * NVL(WASH_RATE,1),2)
TRAN_AMT_,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,35
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
TEMP_STD_CURRENCY_FEED_STG t5,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%CHRG%'' OR
tran_particular like ''ERASURE%''
OR tran_particular like ''COMM%'' OR
tran_particular like ''INTEREST%''
OR tran_particular like ''ECOM ADMIN FEE%'' OR
tran_particular like ''%CHARGES%''
OR TRAN_RMKS like ''CONSUMER LOAN'' OR
TRAN_RMKS LIKE ''INSURANCE PREMIUM%''
OR tran_particular like ''%PAYMENT%'')) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.tran_amt=t1.tran_amt_lcy
and t6.PART_TRAN_TYPE!=t1.TRAN_TYPE
and t6.acid= t2.acid
and t1.tran_ccy = t5.currency(+)
and t2.cust_id is not null
UNION
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round(TRAN_AMT_LCY * NVL(WASH_RATE,1),2)
TRAN_AMT_,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,35
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
TEMP_STD_CURRENCY_FEED_STG t5,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%CHRG%'' OR
tran_particular like ''ERASURE%''
OR tran_particular like ''ECOM ADMIN FEE%'' OR
tran_particular like ''%CHARGES%''
OR TRAN_RMKS like ''CONSUMER LOAN'' OR
TRAN_RMKS LIKE ''INSURANCE PREMIUM%''
OR tran_particular like ''%PAYMENT%'')) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE!=t1.TRAN_TYPE
and t6.acid= t2.acid
and t1.tran_ccy = t5.currency(+)
and t2.cust_id is not null ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round(TRAN_AMT_LCY * NVL(WASH_RATE,1),2)
TRAN_AMT_,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,35
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
TEMP_STD_CURRENCY_FEED_STG t5,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%CHRG%'' OR
tran_particular like ''ERASURE%''
OR tran_particular like ''COMM%'' OR
tran_particular like ''INTEREST%''
OR tran_particular like ''ECOM ADMIN FEE%'' OR
tran_particular like ''%CHARGES%''
OR TRAN_RMKS like ''CONSUMER LOAN'' OR
TRAN_RMKS LIKE ''INSURANCE PREMIUM%''
OR tran_particular like ''%PAYMENT%'')) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.tran_amt=t1.tran_amt_lcy
and t6.PART_TRAN_TYPE!=t1.TRAN_TYPE
and t6.acid= t2.acid
and t1.tran_ccy = t5.currency(+)
and t2.cust_id is not null
UNION
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t2.cust_id) Customer_id,
t2.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round(TRAN_AMT_LCY * NVL(WASH_RATE,1),2)
TRAN_AMT_,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t2.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION,35
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
TEMP_STD_CURRENCY_FEED_STG t5,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%CHRG%'' OR
tran_particular like ''ERASURE%''
OR tran_particular like ''ECOM ADMIN FEE%'' OR
tran_particular like ''%CHARGES%''
OR TRAN_RMKS like ''CONSUMER LOAN'' OR
TRAN_RMKS LIKE ''INSURANCE PREMIUM%''
OR tran_particular like ''%PAYMENT%'')) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE!=t1.TRAN_TYPE
and t6.acid= t2.acid
and t1.tran_ccy = t5.currency(+)
and t2.cust_id is not null ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 35 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 35 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
SELECT * FROM
(
select
t1.Tran_type ,
t1.TRAN_AMT_lcy,
t1.Tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%CHRG%'' OR
tran_particular like ''ERASURE%''
OR tran_particular like ''COMM%'' OR
tran_particular like ''INTEREST%''
OR tran_particular like ''ECOM ADMIN FEE%'' OR
tran_particular like ''%CHARGES%''
OR TRAN_RMKS like ''CONSUMER LOAN'' OR
TRAN_RMKS LIKE ''INSURANCE PREMIUM%''
OR tran_particular like ''%PAYMENT%'')) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.tran_amt=t1.tran_amt_lcy
and t6.PART_TRAN_TYPE!=t1.TRAN_TYPE
and t6.acid= t2.acid
and t2.cust_id is not null
UNION
select
t1.Tran_type ,
t1.TRAN_AMT_lcy,
t1.Tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%CHRG%'' OR
tran_particular like ''ERASURE%''
OR tran_particular like ''ECOM ADMIN FEE%'' OR
tran_particular like ''%CHARGES%''
OR TRAN_RMKS like ''CONSUMER LOAN'' OR
TRAN_RMKS LIKE ''INSURANCE PREMIUM%''
OR tran_particular like ''%PAYMENT%'')) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE!=t1.TRAN_TYPE
and t6.acid= t2.acid
and t2.cust_id is not null)
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
SELECT * FROM
(
select
t1.Tran_type ,
t1.TRAN_AMT_lcy,
t1.Tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%CHRG%'' OR
tran_particular like ''ERASURE%''
OR tran_particular like ''COMM%'' OR
tran_particular like ''INTEREST%''
OR tran_particular like ''ECOM ADMIN FEE%'' OR
tran_particular like ''%CHARGES%''
OR TRAN_RMKS like ''CONSUMER LOAN'' OR
TRAN_RMKS LIKE ''INSURANCE PREMIUM%''
OR tran_particular like ''%PAYMENT%'')) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.tran_amt=t1.tran_amt_lcy
and t6.PART_TRAN_TYPE!=t1.TRAN_TYPE
and t6.acid= t2.acid
and t2.cust_id is not null
UNION
select
t1.Tran_type ,
t1.TRAN_AMT_lcy,
t1.Tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and (tran_particular like ''%CHRG%'' OR
tran_particular like ''ERASURE%''
OR tran_particular like ''ECOM ADMIN FEE%'' OR
tran_particular like ''%CHARGES%''
OR TRAN_RMKS like ''CONSUMER LOAN'' OR
TRAN_RMKS LIKE ''INSURANCE PREMIUM%''
OR tran_particular like ''%PAYMENT%'')) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE!=t1.TRAN_TYPE
and t6.acid= t2.acid
and t2.cust_id is not null)
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 35..- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 35 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 35 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 36:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t4.cust_id) Customer_id,
t4.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round(t1.TRAN_AMT_LCY * NVL(WASH_RATE,1),2)
TRAN_AMT_lcy,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t4.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION ,36
from ENRICHMENT_MISSING_TRANS_STG t1, gam' || V_DB_Link || '
t4,
TEMP_STD_CURRENCY_FEED_STG T5
where tRAN_DATE = to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and Trim(substr(TRAN_RMKS,instr(TRAN_RMKS,''A/C'')+4,15 )) =
t4.foracid
and t1.tran_ccy = t5.currency(+)
AND RUN_STATUS=''N''
and TRAN_RMKS like ''%A/C%'' ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
select '||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
Trim(t4.cust_id) Customer_id,
t4.Foracid Contract_id,
t1.office_account Office_Account,
t1.Vision_GL,
t1.Sol_id Vision_ouc,
''NA''Cost_center,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||' Tran_Ccy,
t1.Tran_type Tran_type,
round(t1.TRAN_AMT_LCY * NVL(WASH_RATE,1),2)
TRAN_AMT_lcy,
'||''''||G_Current_Business_Date ||''''||'
Tran_date,
t1.tran_id,
t1.MIS_CURRENCY MIS_CURRENCY,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') Value_Date,
t4.schm_type,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION ,36
from ENRICHMENT_MISSING_TRANS_STG t1, gam' || V_DB_Link || '
t4,
TEMP_STD_CURRENCY_FEED_STG T5
where tRAN_DATE = to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and Trim(substr(TRAN_RMKS,instr(TRAN_RMKS,''A/C'')+4,15 )) =
t4.foracid
and t1.tran_ccy = t5.currency(+)
AND RUN_STATUS=''N''
and TRAN_RMKS like ''%A/C%'' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 36 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 36 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
SELECT * FROM
(
select
t1.Tran_type,
t1.Tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from ENRICHMENT_MISSING_TRANS_STG t1, gam' ||
V_DB_Link || ' t4
where
tRAN_DATE = to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and Trim(substr(TRAN_RMKS,instr(TRAN_RMKS,''A/C'')+4,15 ))
= t4.foracid
AND RUN_STATUS=''N''
and TRAN_RMKS like ''%A/C%'')
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
SELECT * FROM
(
select
t1.Tran_type,
t1.Tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from ENRICHMENT_MISSING_TRANS_STG t1, gam' ||
V_DB_Link || ' t4
where
tRAN_DATE = to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and Trim(substr(TRAN_RMKS,instr(TRAN_RMKS,''A/C'')+4,15 ))
= t4.foracid
AND RUN_STATUS=''N''
and TRAN_RMKS like ''%A/C%'')
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 36..- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 36 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 36 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 37:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round(TRAN_AMT_lcy * NVL(WASH_RATE,1),2)
TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,37
FROM ENRICHMENT_MISSING_TRANS_STG t1, gam' ||
V_DB_Link || ' t3 ,
TEMP_STD_CURRENCY_FEED_STG t5
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and t1.tran_ccy = t5.currency(+)
and Trim(substr(tran_particular,instr(tran_particular,''INT
ON FD'')+8,length(tran_particular))) = trim(t3.foracid) ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round(TRAN_AMT_lcy * NVL(WASH_RATE,1),2)
TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,37
FROM ENRICHMENT_MISSING_TRANS_STG t1, gam' ||
V_DB_Link || ' t3 ,
TEMP_STD_CURRENCY_FEED_STG t5
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and t1.tran_ccy = t5.currency(+)
and Trim(substr(tran_particular,instr(tran_particular,''INT
ON FD'')+8,length(tran_particular))) = trim(t3.foracid)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 36 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 37 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
where
(T1.TRAN_DATE,T1.TRAN_ID,T1.TRAN_AMT_LCY,T1.COUNTRY,T1.LE_BOOK) in
( select
T1.TRAN_DATE,T1.TRAN_ID,T1.TRAN_AMT_LCY,T1.COUNTRY,T1.LE_BOOK from
ENRICHMENT_MISSING_TRANS_STG t1,
gam' || V_DB_Link || ' t3
where t1.run_status =''N''
and t1.feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and
Trim(substr(tran_particular,instr(tran_particular,''INT ON
FD'')+8,length(tran_particular))) = trim(t3.foracid))');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
where
(T1.TRAN_DATE,T1.TRAN_ID,T1.TRAN_AMT_LCY,T1.COUNTRY,T1.LE_BOOK) in
( select
T1.TRAN_DATE,T1.TRAN_ID,T1.TRAN_AMT_LCY,T1.COUNTRY,T1.LE_BOOK from
ENRICHMENT_MISSING_TRANS_STG t1,
gam' || V_DB_Link || ' t3
where t1.run_status =''N''
and t1.feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and
Trim(substr(tran_particular,instr(tran_particular,''INT ON
FD'')+8,length(tran_particular))) = trim(t3.foracid))');
G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 37..- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 37 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 37 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 38:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.DC_REF_NUM CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,38
FROM
(
select
OFFICE_ACCOUNT,
VISION_GL,
SOL_ID VISION_OUC,
TRAN_CCY,
TRAN_TYPE,
round(TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT_LCY,
TRAN_DATE,
TRAN_ID,
MIS_CURRENCY,
VALUE_DATE,
TRAN_PARTICULAR,
PART_TRAN_SRL_NUM,
Trim(TRAN_PARTICULAR) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
where t1.feed_date ='||''''||G_Current_Business_Date
||''''||'
and RUN_status =''N''
and t1.tran_ccy = t5.currency(+)
and tran_particular not like ''%Revaluation%'' AND
tran_particular not like ''%Book%''
) T1,
dcmm' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.DC_REF_NUM
AND T2.OUR_PARTY_ACID = T3.ACID
AND T3.CUST_ID is not null ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.DC_REF_NUM CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,38
FROM
(
select
OFFICE_ACCOUNT,
VISION_GL,
SOL_ID VISION_OUC,
TRAN_CCY,
TRAN_TYPE,
round(TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT_LCY,
TRAN_DATE,
TRAN_ID,
MIS_CURRENCY,
VALUE_DATE,
TRAN_PARTICULAR,
PART_TRAN_SRL_NUM,
Trim(TRAN_PARTICULAR) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
where t1.feed_date ='||''''||G_Current_Business_Date
||''''||'
and RUN_status =''N''
and t1.tran_ccy = t5.currency(+)
and tran_particular not like ''%Revaluation%'' AND
tran_particular not like ''%Book%''
) T1,
dcmm' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.DC_REF_NUM
AND T2.OUR_PARTY_ACID = T3.ACID
AND T3.CUST_ID is not null');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 38 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 38 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND ( t1.TRAN_ID
,t1.TRAN_DATE,t1.PART_TRAN_SRL_NUM) in(
SELECT TRAN_ID,TRAN_DATE,PART_TRAN_SRL_NUM FROM
(
SELECT
T1.TRAN_DATE,
T1.TRAN_ID,
PART_TRAN_SRL_NUM
FROM
(
select
TRAN_DATE,
TRAN_ID,
PART_TRAN_SRL_NUM,
Trim(TRAN_PARTICULAR) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
where feed_date ='||''''||G_Current_Business_Date
||''''||'
and RUN_status =''N''
and tran_particular not like ''%Revaluation%'' AND
tran_particular not like ''%Book%''
) T1,
dcmm' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.DC_REF_NUM
AND T2.OUR_PARTY_ACID = T3.ACID
AND T3.CUST_ID is not null)) ');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND ( t1.TRAN_ID
,t1.TRAN_DATE,t1.PART_TRAN_SRL_NUM) in(
SELECT TRAN_ID,TRAN_DATE,PART_TRAN_SRL_NUM FROM
(
SELECT
T1.TRAN_DATE,
T1.TRAN_ID,
PART_TRAN_SRL_NUM
FROM
(
select
TRAN_DATE,
TRAN_ID,
PART_TRAN_SRL_NUM,
Trim(TRAN_PARTICULAR) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
where feed_date ='||''''||G_Current_Business_Date
||''''||'
and RUN_status =''N''
and tran_particular not like ''%Revaluation%'' AND
tran_particular not like ''%Book%''
) T1,
dcmm' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.DC_REF_NUM
AND T2.OUR_PARTY_ACID = T3.ACID
AND T3.CUST_ID is not null)) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 38.- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 38 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 38 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 39:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round(t1.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,39
FROM (SELECT T1.OFFICE_ACCOUNT, t1.tran_ccy ,T1.VISION_GL
VISION_GL, T1.SOL_ID SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,

Trim(substr(tran_particular,instr(tran_particular,''A/C:'')+4,15 ))
FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''%A/C%'' AND
Trim(substr(tran_particular,instr(tran_particular,''A/C:'')+4,15 )) is
not null
UNION ALL
SELECT T1.OFFICE_ACCOUNT, t1.tran_ccy ,T1.VISION_GL VISION_GL,
T1.SOL_ID SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,

trim(substr(tran_particular,1,instr(tran_particular,''-'')-1)) FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''%PENAL%'' and
trim(substr(tran_particular,1,instr(tran_particular,''-'')-1)) is not
null
UNION ALL
SELECT T1.OFFICE_ACCOUNT, t1.tran_ccy , T1.VISION_GL VISION_GL,
T1.SOL_ID SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
TRIM(SUBSTR(tran_particular,3,13)) FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''FD%INT ADJ%'' and
TRIM(SUBSTR(tran_particular,3,13)) is not null
UNION ALL
SELECT T1.OFFICE_ACCOUNT, t1.tran_ccy ,T1.VISION_GL VISION_GL,
T1.SOL_ID SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,

trim(substr(tran_particular,instr(tran_particular,''-
'')+1,length(tran_particular))) FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''COMM ON B.STATEMENT SB%''
and trim(substr(tran_particular,instr(tran_particular,''-
'')+1,length(tran_particular))) is not null ) T1, gam' || V_DB_Link ||
' t3,
TEMP_STD_CURRENCY_FEED_STG t5
where trim(t3.foracid) =T1.FORACID
and t1.tran_ccy = t5.currency(+) ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round(t1.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,39
FROM (SELECT T1.OFFICE_ACCOUNT, t1.tran_ccy ,T1.VISION_GL
VISION_GL, T1.SOL_ID SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,

Trim(substr(tran_particular,instr(tran_particular,''A/C:'')+4,15 ))
FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''%A/C%'' AND
Trim(substr(tran_particular,instr(tran_particular,''A/C:'')+4,15 )) is
not null
UNION ALL
SELECT T1.OFFICE_ACCOUNT, t1.tran_ccy ,T1.VISION_GL VISION_GL,
T1.SOL_ID SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,

trim(substr(tran_particular,1,instr(tran_particular,''-'')-1)) FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''%PENAL%'' and
trim(substr(tran_particular,1,instr(tran_particular,''-'')-1)) is not
null
UNION ALL
SELECT T1.OFFICE_ACCOUNT, t1.tran_ccy , T1.VISION_GL VISION_GL,
T1.SOL_ID SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
TRIM(SUBSTR(tran_particular,3,13)) FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''FD%INT ADJ%'' and
TRIM(SUBSTR(tran_particular,3,13)) is not null
UNION ALL
SELECT T1.OFFICE_ACCOUNT, t1.tran_ccy ,T1.VISION_GL VISION_GL,
T1.SOL_ID SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,

trim(substr(tran_particular,instr(tran_particular,''-
'')+1,length(tran_particular))) FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''COMM ON B.STATEMENT SB%''
and trim(substr(tran_particular,instr(tran_particular,''-
'')+1,length(tran_particular))) is not null ) T1, gam' || V_DB_Link ||
' t3,
TEMP_STD_CURRENCY_FEED_STG t5
where trim(t3.foracid) =T1.FORACID
and t1.tran_ccy = t5.currency(+) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 39 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 39 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
where
(T1.TRAN_DATE,T1.TRAN_ID,T1.TRAN_AMT_LCY,T1.COUNTRY,T1.LE_BOOK) in
(
SELECT
T1.TRAN_DATE,
T1.TRAN_ID,
T1.TRAN_AMT_LCY,
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK
FROM (SELECT T1.OFFICE_ACCOUNT, T1.VISION_GL VISION_GL,
T1.SOL_ID SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,

Trim(substr(tran_particular,instr(tran_particular,''A/C:'')+4,15 ))
FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''%A/C%'' AND
Trim(substr(tran_particular,instr(tran_particular,''A/C:'')+4,15 )) is
not null
UNION
SELECT T1.OFFICE_ACCOUNT, T1.VISION_GL VISION_GL, T1.SOL_ID
SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,

trim(substr(tran_particular,1,instr(tran_particular,''-'')-1)) FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''%PENAL%'' and
trim(substr(tran_particular,1,instr(tran_particular,''-'')-1)) is not
null
UNION
SELECT T1.OFFICE_ACCOUNT, T1.VISION_GL VISION_GL, T1.SOL_ID
SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
TRIM(SUBSTR(tran_particular,3,13)) FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''FD%INT ADJ%'' and
TRIM(SUBSTR(tran_particular,3,13)) is not null
UNION
SELECT T1.OFFICE_ACCOUNT, T1.VISION_GL VISION_GL, T1.SOL_ID
SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,

trim(substr(tran_particular,instr(tran_particular,''-
'')+1,length(tran_particular))) FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''COMM ON B.STATEMENT SB%''
and trim(substr(tran_particular,instr(tran_particular,''-
'')+1,length(tran_particular))) is not null
UNION
SELECT T1.OFFICE_ACCOUNT, T1.VISION_GL VISION_GL, T1.SOL_ID
SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,

trim(substr(tran_particular,instr(tran_particular,''SB'')+2,length(tran_p
articular))) FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''COMM ON B.STATEMENT SB%''
and
trim(substr(tran_particular,instr(tran_particular,''SB'')+2,length(tran_p
articular))) is not null ) T1, gam' || V_DB_Link || ' t3
where trim(t3.foracid) =T1.FORACID ) ');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
where
(T1.TRAN_DATE,T1.TRAN_ID,T1.TRAN_AMT_LCY,T1.COUNTRY,T1.LE_BOOK) in
(
SELECT
T1.TRAN_DATE,
T1.TRAN_ID,
T1.TRAN_AMT_LCY,
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK
FROM (SELECT T1.OFFICE_ACCOUNT, T1.VISION_GL VISION_GL,
T1.SOL_ID SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,

Trim(substr(tran_particular,instr(tran_particular,''A/C:'')+4,15 ))
FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''%A/C%'' AND
Trim(substr(tran_particular,instr(tran_particular,''A/C:'')+4,15 )) is
not null
UNION
SELECT T1.OFFICE_ACCOUNT, T1.VISION_GL VISION_GL, T1.SOL_ID
SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,

trim(substr(tran_particular,1,instr(tran_particular,''-'')-1)) FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''%PENAL%'' and
trim(substr(tran_particular,1,instr(tran_particular,''-'')-1)) is not
null
UNION
SELECT T1.OFFICE_ACCOUNT, T1.VISION_GL VISION_GL, T1.SOL_ID
SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
TRIM(SUBSTR(tran_particular,3,13)) FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''FD%INT ADJ%'' and
TRIM(SUBSTR(tran_particular,3,13)) is not null
UNION
SELECT T1.OFFICE_ACCOUNT, T1.VISION_GL VISION_GL, T1.SOL_ID
SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,

trim(substr(tran_particular,instr(tran_particular,''-
'')+1,length(tran_particular))) FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''COMM ON B.STATEMENT SB%''
and trim(substr(tran_particular,instr(tran_particular,''-
'')+1,length(tran_particular))) is not null
UNION
SELECT T1.OFFICE_ACCOUNT, T1.VISION_GL VISION_GL, T1.SOL_ID
SOL_ID,
T1.TRAN_TYPE TRAN_TYPE, T1.TRAN_AMT_LCY,
T1.TRAN_DATE, T1.TRAN_ID,
T1.MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,

trim(substr(tran_particular,instr(tran_particular,''SB'')+2,length(tran_p
articular))) FORACID
FROM ENRICHMENT_MISSING_TRANS_STG T1
where t1.run_status =''N''
and t1.feed_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular like ''COMM ON B.STATEMENT SB%''
and
trim(substr(tran_particular,instr(tran_particular,''SB'')+2,length(tran_p
articular))) is not null ) T1, gam' || V_DB_Link || ' t3
where trim(t3.foracid) =T1.FORACID) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 39.- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 38 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 39 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 40:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.DC_REF_NUM CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,40
FROM
(
select
OFFICE_ACCOUNT,
VISION_GL,
SOL_ID VISION_OUC,
TRAN_CCY,
TRAN_TYPE,
round(TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT_LCY,
TRAN_DATE,
TRAN_ID,
MIS_CURRENCY,
VALUE_DATE,
TRAN_PARTICULAR,
Trim(substr(tran_particular,
(INSTR(TRAN_PARTICULAR,''['',1) + 1), ((INSTR(TRAN_PARTICULAR,'']'',1) -
1) - (INSTR(TRAN_PARTICULAR,''['',1))))) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG t1,
TEMP_STD_CURRENCY_FEED_STG t5
where feed_date ='||''''||G_Current_Business_Date
||''''||'
and t1.tran_ccy = t5.currency(+)
and TRAN_RMKS =''Amort Interest''
and RUN_status =''N''
) T1,
DCMM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.DC_REF_NUM
AND CASE When T2.DC_CONST_ACID is null Then
T2.DC_CONTRA_ACID ELSE T2.DC_CONST_ACID END = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+) ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.DC_REF_NUM CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,40
FROM
(
select
OFFICE_ACCOUNT,
VISION_GL,
SOL_ID VISION_OUC,
TRAN_CCY,
TRAN_TYPE,
round(TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT_LCY,
TRAN_DATE,
TRAN_ID,
MIS_CURRENCY,
VALUE_DATE,
TRAN_PARTICULAR,
Trim(substr(tran_particular,
(INSTR(TRAN_PARTICULAR,''['',1) + 1), ((INSTR(TRAN_PARTICULAR,'']'',1) -
1) - (INSTR(TRAN_PARTICULAR,''['',1))))) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG t1,
TEMP_STD_CURRENCY_FEED_STG t5
where feed_date ='||''''||G_Current_Business_Date
||''''||'
and t1.tran_ccy = t5.currency(+)
and TRAN_RMKS =''Amort Interest''
and RUN_status =''N''
) T1,
DCMM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.DC_REF_NUM
AND CASE When T2.DC_CONST_ACID is null Then
T2.DC_CONTRA_ACID ELSE T2.DC_CONST_ACID END = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 40 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 40 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
SELECT * FROM
(
select
TRAN_DATE,
TRAN_ID,

PART_TRAN_SRL_NUM,

Trim(substr(tran_particular, (INSTR(TRAN_PARTICULAR,''['',1) + 1),


((INSTR(TRAN_PARTICULAR,'']'',1) - 1) -
(INSTR(TRAN_PARTICULAR,''['',1))))) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
where feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and TRAN_RMKS =''Amort
Interest''
and RUN_status =''N''
) T1,
DCMM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.DC_REF_NUM
AND CASE When T2.DC_CONST_ACID is null Then
T2.DC_CONTRA_ACID ELSE T2.DC_CONST_ACID END = T3.ACID
AND T3.CUST_ID IS NOT NULL
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(SELECT ''x'' FROM
(
SELECT * FROM
(
select
TRAN_DATE,
TRAN_ID,

PART_TRAN_SRL_NUM,

Trim(substr(tran_particular, (INSTR(TRAN_PARTICULAR,''['',1) + 1),


((INSTR(TRAN_PARTICULAR,'']'',1) - 1) -
(INSTR(TRAN_PARTICULAR,''['',1))))) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
where feed_date
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and TRAN_RMKS =''Amort
Interest''
and RUN_status =''N''
) T1,
DCMM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3
WHERE
T1.BILL_ID = T2.DC_REF_NUM
AND CASE When T2.DC_CONST_ACID is null Then
T2.DC_CONTRA_ACID ELSE T2.DC_CONST_ACID END = T3.ACID
AND T3.CUST_ID IS NOT NULL
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 40.- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 40 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 40 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 41:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.DC_REF_NUM CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,41
FROM
(
select
OFFICE_ACCOUNT,
VISION_GL,
SOL_ID VISION_OUC,
TRAN_CCY,
TRAN_TYPE,
round(TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT_LCY,
TRAN_DATE,
TRAN_ID,
MIS_CURRENCY,
VALUE_DATE,
TRAN_PARTICULAR,

Trim(SUBSTR(tran_particular,instr(tran_particular,''-'')+1,
(instr(tran_particular,'':'')-instr(tran_particular,''-''))-1)) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
where feed_date ='||''''||G_Current_Business_Date
||''''||'
and t1.tran_ccy = t5.currency(+)
and
Trim(SUBSTR(tran_particular,instr(tran_particular,''-'')+1,
(instr(tran_particular,'':'')-instr(tran_particular,''-''))-1)) is not
null
and RUN_status =''N''
) T1,
DCMM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.DC_REF_NUM
AND OUR_PARTY_ACID = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+) ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T2.DC_REF_NUM CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
T1.TRAN_AMT_LCY TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T3.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,41
FROM
(
select
OFFICE_ACCOUNT,
VISION_GL,
SOL_ID VISION_OUC,
TRAN_CCY,
TRAN_TYPE,
round(TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT_LCY,
TRAN_DATE,
TRAN_ID,
MIS_CURRENCY,
VALUE_DATE,
TRAN_PARTICULAR,

Trim(SUBSTR(tran_particular,instr(tran_particular,''-'')+1,
(instr(tran_particular,'':'')-instr(tran_particular,''-''))-1)) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
where feed_date ='||''''||G_Current_Business_Date
||''''||'
and t1.tran_ccy = t5.currency(+)
and
Trim(SUBSTR(tran_particular,instr(tran_particular,''-'')+1,
(instr(tran_particular,'':'')-instr(tran_particular,''-''))-1)) is not
null
and RUN_status =''N''
) T1,
DCMM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.DC_REF_NUM
AND OUR_PARTY_ACID = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 41 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 41 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND (t1.tran_id,t1.part_tran_srl_num)
in (
SELECT t1.TRAN_ID,t1.PART_TRAN_SRL_NUM
FROM (
SELECT
PART_TRAN_SRL_NUM,
TRAN_DATE,

TRAN_ID,Trim(SUBSTR(tran_particular,instr(tran_particular,''-'')+1,
(instr(tran_particular,'':'')-instr(tran_particular,''-''))-1)) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
where feed_date ='||''''||G_Current_Business_Date
||''''||'
and
Trim(SUBSTR(tran_particular,instr(tran_particular,''-'')+1,
(instr(tran_particular,'':'')-instr(tran_particular,''-''))-1)) is not
null
and RUN_status =''N''
) T1,
DCMM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.DC_REF_NUM
and
t1.tran_date='||''''||G_Current_Business_Date ||''''||'
AND OUR_PARTY_ACID = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+) ) ');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND (t1.tran_id,t1.part_tran_srl_num)
in (
SELECT t1.TRAN_ID,t1.PART_TRAN_SRL_NUM
FROM (
SELECT
PART_TRAN_SRL_NUM,
TRAN_DATE,

TRAN_ID,Trim(SUBSTR(tran_particular,instr(tran_particular,''-'')+1,
(instr(tran_particular,'':'')-instr(tran_particular,''-''))-1)) BILL_ID
from ENRICHMENT_MISSING_TRANS_STG
where feed_date ='||''''||G_Current_Business_Date
||''''||'
and
Trim(SUBSTR(tran_particular,instr(tran_particular,''-'')+1,
(instr(tran_particular,'':'')-instr(tran_particular,''-''))-1)) is not
null
and RUN_status =''N''
) T1,
DCMM' || V_DB_Link || ' T2,
GAM' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' T4
WHERE
T1.BILL_ID = T2.DC_REF_NUM
and
t1.tran_date='||''''||G_Current_Business_Date ||''''||'
AND OUR_PARTY_ACID = T3.ACID
AND T3.CUST_ID = T4.CUST_ID(+) ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 41.- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 41 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 41 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 42:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
T2.foracid CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round(T1.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T2.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,42
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular is null)
t1,TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.cust_id is not null
and t6.tran_crncy_code=t5.currency(+)
AND T6. tran_particular like ''DD/CC ISSUED'' ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
T2.foracid CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round(T1.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,
NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,
T2.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,42
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular is null)
t1,TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.cust_id is not null
and t6.tran_crncy_code=t5.currency(+)
AND T6. tran_particular like ''DD/CC ISSUED'' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 42 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 42 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(
SELECT ''x'' FROM(
select DISTINCT
t1.tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular is null) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.cust_id is not null
AND T6. tran_particular like ''DD/CC ISSUED''
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(
SELECT ''x'' FROM(
select DISTINCT
t1.tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and tran_particular is null) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.cust_id is not null
AND T6. tran_particular like ''DD/CC ISSUED''
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 42.- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 42 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 42 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 43:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
T2.foracid CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round(T1.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T2.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,43
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and REF_NUM LIKE ''%7034006'')
t1,TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.tran_crncy_code = t5.currency(+)
and t6.cust_id is not null
AND T6. tran_particular like ''%ANGLO%'' ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
T2.foracid CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round(T1.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T2.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,43
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and REF_NUM LIKE ''%7034006'')
t1,TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.tran_crncy_code = t5.currency(+)
and t6.cust_id is not null
AND T6. tran_particular like ''%ANGLO%'' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 43 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 43 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET
RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(
SELECT ''x'' FROM(
select DISTINCT
t1.tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and REF_NUM LIKE ''%7034006'') t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.cust_id is not null
AND T6. tran_particular like ''%ANGLO%''
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(
SELECT ''x'' FROM(
select DISTINCT
t1.tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and REF_NUM LIKE ''%7034006'') t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.cust_id is not null
AND T6. tran_particular like ''%ANGLO%''
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 43.- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 43 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 43 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 44:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
T2.foracid CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round(T1.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T2.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,44
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
AND REF_NUM LIKE ''%7034007'' )
t1,TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.tran_crncy_code = t5.currency(+)
and t6.cust_id is not null
AND T6. tran_particular like ''%MAURITIUS UNION%'' ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
T2.foracid CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round(T1.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T2.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,44
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
AND REF_NUM LIKE ''%7034007'' )
t1,TEMP_STD_CURRENCY_FEED_STG t5
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.tran_crncy_code = t5.currency(+)
and t6.cust_id is not null
AND T6. tran_particular like ''%MAURITIUS UNION%'' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 44 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 44 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(
SELECT ''x'' FROM(
select DISTINCT
t1.tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and REF_NUM LIKE ''%7034007'') t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.cust_id is not null
AND T6. tran_particular like ''%MAURITIUS UNION%''
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(
SELECT ''x'' FROM(
select DISTINCT
t1.tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
and REF_NUM LIKE ''%7034007'') t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.cust_id is not null
AND T6. tran_particular like ''%MAURITIUS UNION%''
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 44.- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 44 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 44 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 45:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
T2.foracid CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round(t1.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T2.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,45
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
TEMP_STD_CURRENCY_FEED_STG t5,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') ) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.tran_crncy_code = t5.currency(+)
and t6.cust_id is not null
AND T6. tran_particular like ''%SWAN%'' ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
T2.foracid CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round(t1.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T2.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,45
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
TEMP_STD_CURRENCY_FEED_STG t5,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') ) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.tran_crncy_code = t5.currency(+)
and t6.cust_id is not null
AND T6. tran_particular like ''%SWAN%'' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 45 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 45 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(
SELECT ''x'' FROM(
select DISTINCT
t1.tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.cust_id is not null
AND T6. tran_particular like ''%SWAN%''
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(
SELECT ''x'' FROM(
select DISTINCT
t1.tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
) t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE != t1.tran_type
and t6.acid= t2.acid
and t6.cust_id is not null
AND T6. tran_particular like ''%SWAN%''
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 45.- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 45 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 45 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN
writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG
Insert For 46:..');

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
T2.foracid CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round(t1.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T2.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,46
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
TEMP_STD_CURRENCY_FEED_STG t5,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
AND TRAN_PARTICULAR LIKE ''%EARLY REPAYMENT FEE'' )
t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE = t1.tran_type
and t6.acid= t2.acid
and t6.tran_crncy_code = t5.currency(+)
and t6.cust_id is not null
AND T6. tran_particular like ''%LOAN%'' ');

EXECUTE IMMEDIATE ('INSERT INTO


ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,QUERY_NO)
SELECT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(T2.CUST_ID) CUSTOMER_ID,
T2.foracid CONTRACT_ID,
T1.OFFICE_ACCOUNT OFFICE_ACCOUNT,
T1.VISION_GL VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
'||''''||G_Book_Ccy_Code||'''' ||'
TRAN_CCY,
T1.TRAN_TYPE TRAN_TYPE,
round(t1.TRAN_AMT_LCY *
NVL(WASH_RATE,1),2) TRAN_AMT,
T1.TRAN_DATE,
T1.TRAN_ID,
T1.MIS_CURRENCY MIS_CURRENCY,

NVL(T1.VALUE_DATE,'||''''||G_Current_Business_Date ||''''||') VALUE_DATE,


T2.SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,46
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
TEMP_STD_CURRENCY_FEED_STG t5,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
AND TRAN_PARTICULAR LIKE ''%EARLY REPAYMENT FEE'' )
t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE = t1.tran_type
and t6.acid= t2.acid
and t6.tran_crncy_code = t5.currency(+)
and t6.cust_id is not null
AND T6. tran_particular like ''%LOAN%'' ');
G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. For 46 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 45 raised trying
to Insert Into ENRICHMENT_FEED_STG For 46 !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('UPDATE ENRICHMENT_MISSING_TRANS_STG T1 SET


RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(
SELECT ''x'' FROM(
select DISTINCT
t1.tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
AND TRAN_PARTICULAR LIKE ''%EARLY REPAYMENT FEE'' )
t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE = t1.tran_type
and t6.acid= t2.acid
and t6.cust_id is not null
AND T6. tran_particular like ''%LOAN%''
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

EXECUTE IMMEDIATE('UPDATE
ENRICHMENT_MISSING_TRANS_STG T1 SET RUN_STATUS =''Y''
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND TRAN_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND RUN_STATUS=''N''
AND EXISTS
(
SELECT ''x'' FROM(
select DISTINCT
t1.tran_date,
t1.tran_id,
t1.PART_TRAN_SRL_NUM
from gam' || V_DB_Link || ' t2, TEMP_TXN_DTL_HTD t6,
(select * from ENRICHMENT_MISSING_TRANS_STG where
run_status=''N'' and tran_date =to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'')
AND TRAN_PARTICULAR LIKE ''%EARLY REPAYMENT FEE'' )
t1
where t1.tRAN_DATE =
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t6.tran_id=t1.tran_id
and t6.tran_date=t1.tran_date
and t6.PART_TRAN_TYPE = t1.tran_type
and t6.acid= t2.acid
and t6.cust_id is not null
AND T6. tran_particular like ''%LOAN%''
) T2
WHERE
t1.TRAN_ID = T2.TRAN_ID
AND t1.TRAN_DATE = T2.TRAN_DATE
AND t1.PART_TRAN_SRL_NUM =
T2.PART_TRAN_SRL_NUM )');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 46.- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 46 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 46 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('DELETE FROM ENRICHMENT_FEED_STG T1


WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
--AND PRODUCT
in(''BGENRICH'',''BILLSENRICH'',''LCENRICH'')
AND VISION_GL in (select distinct vision_gl from
gl_translation where substr(mapping_source_vision_gl,1,1) in
(''5'',''6''))
AND RUN_STATUS =''N''
AND (T1.TRAN_ID,T1.TRAN_DATE) IN
(SELECT T1.TRAN_ID,T1.TRAN_DATE FROM
(SELECT round(SUM(TRAN_AMT *
NVL(WASH_RATE,1)),2) TRAN_AMT,TRAN_ID,TRAN_DATE
FROM
TRADEPRD_FEED_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
WHERE COUNTRY ='||''''||P_Country||''''
||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
and t1.tran_ccy = t5.currency(+)
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND PRODUCT
in(''BGENRICH'',''BILLSENRICH'',''LCENRICH'')
AND VISION_GL in (select distinct
vision_gl from gl_translation where substr(mapping_source_vision_gl,1,1)
in (''5'',''6''))
AND RUN_STATUS =''N''
GROUP BY TRAN_ID,TRAN_DATE) T1,
(SELECT SUM(TRAN_AMT)
TRAN_AMT,TRAN_ID,TRAN_DATE FROM ENRICHMENT_feed_stg T1
WHERE T1.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND VISION_GL in (select distinct
vision_gl from gl_translation where substr(mapping_source_vision_gl,1,1)
in (''5'',''6''))
AND RUN_STATUS =''N''
GROUP BY TRAN_ID,TRAN_DATE ) T2
WHERE T1.TRAN_ID = T2.TRAN_ID
AND T1.TRAN_DATE = T2.TRAN_DATE
AND T1.TRAN_AMT = T2.TRAN_AMT)');

EXECUTE IMMEDIATE('DELETE FROM ENRICHMENT_FEED_STG


T1
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
--AND PRODUCT
in(''BGENRICH'',''BILLSENRICH'',''LCENRICH'')
AND VISION_GL in (select distinct vision_gl from
gl_translation where substr(mapping_source_vision_gl,1,1) in
(''5'',''6''))
AND RUN_STATUS =''N''
AND (T1.TRAN_ID,T1.TRAN_DATE) IN
(SELECT T1.TRAN_ID,T1.TRAN_DATE FROM
(SELECT round(SUM(TRAN_AMT *
NVL(WASH_RATE,1)),2) TRAN_AMT,TRAN_ID,TRAN_DATE
FROM
TRADEPRD_FEED_STG
t1,TEMP_STD_CURRENCY_FEED_STG t5
WHERE COUNTRY ='||''''||P_Country||''''
||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
and t1.tran_ccy = t5.currency(+)
AND FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND PRODUCT
in(''BGENRICH'',''BILLSENRICH'',''LCENRICH'')
AND VISION_GL in (select distinct
vision_gl from gl_translation where substr(mapping_source_vision_gl,1,1)
in (''5'',''6''))
AND RUN_STATUS =''N''
GROUP BY TRAN_ID,TRAN_DATE) T1,
(SELECT SUM(TRAN_AMT)
TRAN_AMT,TRAN_ID,TRAN_DATE FROM ENRICHMENT_feed_stg T1
WHERE T1.FEED_DATE
=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
AND VISION_GL in (select distinct
vision_gl from gl_translation where substr(mapping_source_vision_gl,1,1)
in (''5'',''6''))
AND RUN_STATUS =''N''
GROUP BY TRAN_ID,TRAN_DATE ) T2
WHERE T1.TRAN_ID = T2.TRAN_ID
AND T1.TRAN_DATE = T2.TRAN_DATE
AND T1.TRAN_AMT = T2.TRAN_AMT)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables For 46.- FYI.');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
writeLogInfo('The staging Data has Processed -
FYI. 46 Charges ');
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception 44 raised trying
to Insert Into ENRICHMENT_FEED_STG For 46 Charges !!');
RETURN ERRONEOUS_EXIT;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getPussMissIntChgEnrhStgData;

/*#######################################################################
##################################################
Name : getAccrualEnrhStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[FIN_DLY_HEADERS,FIN_DLY_BALANCES].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getAccrualEnrhStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getAccrualEnrhStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table ENRICHMENT_ACCRUAL_STG


.....');

BEGIN
writeLogInfo('INSERT INTO ENRICHMENT_ACCRUAL_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,
CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,ORIGINAL_OUC,
Currency,TRAN_TYPE,
TRAN_AMT,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT
'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
Trim(T1.Cust_id) Customer_Id,
t3.foracid Contract_id,
t2.Foracid Office_account,
t2.GL_SUB_HEAD_CODE Vision_GL,
CASE WHEN NVL(T5.FREE_CODE_2,''NA'') NOT IN
('||''''||Profit_Center||'''' ||',''NA'') THEN
T5.FREE_CODE_2
ELSE
T1.Sol_id End Vision_ouc,
T1.Sol_id ORIGINAL_OUC,
T1.TRAN_CRNCY_CODE Currency,
T1.Part_Tran_type Tran_type,
t1.tran_amt tran_amt,
'||''''||G_Current_Business_Date||''''|| '
Feed_date,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from acpart' || V_DB_Link || ' T1,'||G_GAM_Table||''
|| V_DB_Link || ' T2,'||G_GAM_Table||'' || V_DB_Link || ' T3,CEM' ||
V_DB_Link || ' T5
where T1.tran_date
='||''''||G_Current_Business_Date||''''|| '
and B2K_TYPE =''ACCNT''
and t1.PARTITIONED_ACID =t2.acid
AND T1.B2K_ID =t3.acid
And T3.cust_id =t5.cust_id(+)
/*and exists
(select ''x'' from ENRICHMENT_MISSING_TRANS_STG T3
where t1.tran_date
='||''''||G_Current_Business_Date||''''|| '
And t1.tran_date =t3.tran_date
and t1.tran_id =t3.tran_id)*/
Union
select
'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
Trim(T1.Cust_id) Customer_Id,
t3.BILL_ID Contract_id,
t2.Foracid Office_account,
t2.GL_SUB_HEAD_CODE Vision_GL,
T1.Sol_id Vision_ouc,
T1.Sol_id ORIGINAL_OUC,
T1.TRAN_CRNCY_CODE Currency,
T1.Part_Tran_type Tran_type,
t1.tran_amt tran_amt,
'||''''||G_Current_Business_Date||''''|| '
Feed_date,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from acpart' || V_DB_Link || ' T1,'||G_GAM_Table||'' ||
V_DB_Link || ' T2,FBM' || V_DB_Link || ' T3,CEM' || V_DB_Link || ' T5
where T1.tran_date
='||''''||G_Current_Business_Date||''''|| '
and B2K_TYPE =''FBILL''
and t1.PARTITIONED_ACID =t2.acid
AND T1.B2K_ID =t3.bill_b2k_id
And T1.cust_id =t5.cust_id(+)
/*and exists
(select ''x'' from ENRICHMENT_MISSING_TRANS_STG T3
where t1.tran_date
='||''''||G_Current_Business_Date||''''|| '
And t1.tran_date =t3.tran_date
and t1.tran_id =t3.tran_id )*/');

IF (G_Manual_Flag = 'N') THEN /* Base Line Not Req */


EXECUTE IMMEDIATE ('INSERT INTO
ENRICHMENT_ACCRUAL_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,
CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,ORIGINAL_OUC,
Currency,TRAN_TYPE,
TRAN_AMT,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT
'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
Trim(T1.Cust_id) Customer_Id,
t3.foracid Contract_id,
t2.Foracid Office_account,
t2.GL_SUB_HEAD_CODE Vision_GL,
T1.Sol_id Vision_ouc,
T1.Sol_id ORIGINAL_OUC,
T1.TRAN_CRNCY_CODE Currency,
T1.Part_Tran_type Tran_type,
t1.tran_amt tran_amt,
'||''''||G_Current_Business_Date||''''|| '
Feed_date,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from acpart' || V_DB_Link || ' T1,'||G_GAM_Table||''
|| V_DB_Link || ' T2,'||G_GAM_Table||'' || V_DB_Link || ' T3,CEM' ||
V_DB_Link || ' T5
where T1.tran_date >
'||''''||G_LastBusinessDateRun||'''' || '
and B2K_TYPE =''ACCNT''
and t1.PARTITIONED_ACID =t2.acid
AND T1.B2K_ID =t3.acid
And T3.cust_id =t5.cust_id(+)
/*and exists
(select ''x'' from ENRICHMENT_MISSING_TRANS_STG T3
where t1.tran_date
='||''''||G_Current_Business_Date||''''|| '
And t1.tran_date =t3.tran_date
and t1.tran_id =t3.tran_id)*/
Union
select
'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
Trim(T1.Cust_id) Customer_Id,
t3.BILL_ID Contract_id,
t2.Foracid Office_account,
t2.GL_SUB_HEAD_CODE Vision_GL,
T1.Sol_id Vision_ouc,
T1.Sol_id ORIGINAL_OUC,
T1.TRAN_CRNCY_CODE Currency,
T1.Part_Tran_type Tran_type,
t1.tran_amt tran_amt,
'||''''||G_Current_Business_Date||''''|| '
Feed_date,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from acpart' || V_DB_Link || ' T1,'||G_GAM_Table||'' ||
V_DB_Link || ' T2,FBM' || V_DB_Link || ' T3,CEM' || V_DB_Link || ' T5
where T1.tran_date >
'||''''||G_LastBusinessDateRun||'''' || '
and B2K_TYPE =''FBILL''
and t1.PARTITIONED_ACID =t2.acid
AND T1.B2K_ID =t3.bill_b2k_id
And T1.cust_id =t5.cust_id(+)
/*and exists
(select ''x'' from ENRICHMENT_MISSING_TRANS_STG T3
where t1.tran_date
='||''''||G_Current_Business_Date||''''|| '
And t1.tran_date =t3.tran_date
and t1.tran_id =t3.tran_id )*/');
ELSIF (G_Manual_Flag = 'Y') THEN
EXECUTE IMMEDIATE ('INSERT INTO
ENRICHMENT_ACCRUAL_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,
CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,ORIGINAL_OUC,
Currency,TRAN_TYPE,
TRAN_AMT,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT
'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
Trim(T1.Cust_id) Customer_Id,
t3.foracid Contract_id,
t2.Foracid Office_account,
t2.GL_SUB_HEAD_CODE Vision_GL,
T1.Sol_id Vision_ouc,
T1.Sol_id ORIGINAL_OUC,
T1.TRAN_CRNCY_CODE Currency,
T1.Part_Tran_type Tran_type,
t1.tran_amt tran_amt,
'||''''||G_Current_Business_Date||''''|| '
Feed_date,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from acpart' || V_DB_Link || ' T1,'||G_GAM_Table||''
|| V_DB_Link || ' T2,'||G_GAM_Table||'' || V_DB_Link || ' T3,CEM' ||
V_DB_Link || ' T5
where T1.tran_date
='||''''||G_Current_Business_Date||''''|| '
and B2K_TYPE =''ACCNT''
and t1.PARTITIONED_ACID =t2.acid
AND T1.B2K_ID =t3.acid
And T3.cust_id =t5.cust_id(+)
/*and exists
(select ''x'' from ENRICHMENT_MISSING_TRANS_STG T3
where t1.tran_date
='||''''||G_Current_Business_Date||''''|| '
And t1.tran_date =t3.tran_date
and t1.tran_id =t3.tran_id)*/
Union
select
'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
Trim(T1.Cust_id) Customer_Id,
t3.BILL_ID Contract_id,
t2.Foracid Office_account,
t2.GL_SUB_HEAD_CODE Vision_GL,
T1.Sol_id Vision_ouc,
T1.Sol_id ORIGINAL_OUC,
T1.TRAN_CRNCY_CODE Currency,
T1.Part_Tran_type Tran_type,
t1.tran_amt tran_amt,
'||''''||G_Current_Business_Date||''''|| '
Feed_date,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from acpart' || V_DB_Link || ' T1,'||G_GAM_Table||'' ||
V_DB_Link || ' T2,FBM' || V_DB_Link || ' T3,CEM' || V_DB_Link || ' T5
where T1.tran_date
='||''''||G_Current_Business_Date||''''|| '
and B2K_TYPE =''FBILL''
and t1.PARTITIONED_ACID =t2.acid
AND T1.B2K_ID =t3.bill_b2k_id
And T1.cust_id =t5.cust_id(+)
/*and exists
(select ''x'' from ENRICHMENT_MISSING_TRANS_STG T3
where t1.tran_date
='||''''||G_Current_Business_Date||''''|| '
And t1.tran_date =t3.tran_date
and t1.tran_id =t3.tran_id )*/');
End if;

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table 3 has already
been dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception 3 raised
trying to Delete ENRICHMENT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getAccrualEnrhStgData;
/*#######################################################################
##################################################
Name : getFinacleLCEnrichStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CONTRACTS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getFinacleLCEnrichStgData(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinacleLCEnrichStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'TRADEPRD_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TRADEPRD_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table TRADEPRD_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO TRADEPRD_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
Trim(Dcmm.ISSU_PARTY_CODE) Customer_Id,
DCMM.DC_REF_NUM Contract_id,
GLCONST.FORACID OFFICE_ACCOUNT,
GLCONST.GL_SUB_HEAD_CODE VISION_GL,
DCMM.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
DCMM.ACTL_CRNCY_CODE TRAN_CCY,
''D'' TRAN_TYPE,
ABS(dcavailvalue(DCMM.DC_REF_NUM, db_stat_date))
TRaN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NULL TRAN_ID,
DCMM.ACTL_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
GLCONST.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
DCMM' || V_DB_Link || ', DCRM' || V_DB_Link || ',
DCEM' || V_DB_Link || ',GCT' || V_DB_Link || ',
GAM' || V_DB_Link || ' GLCONST,DCMM' || V_DB_Link
|| ' X,CEM' || V_DB_Link || '
WHERE DCMM.DC_B2KID = DCEM.DC_B2KID
AND DCMM.DC_REG_TYPE = DCRM.REG_TYPE
AND DCEM.REMARKS = ''DC Opening''
AND DCRM.INW_OUT_DC_IND = ''O''
AND DCEM.EVENT_DATE <= db_stat_date
AND DCMM.ENTITY_CRE_FLG = ''Y''
AND DCMM.DEL_FLG <> ''Y''
AND GLCONST.ACID = DCMM.DC_CONST_ACID
AND X.SOL_ID=DCMM.SOL_ID
AND X.DC_REF_NUM=DCMM.DC_REF_NUM
and Dcmm.ISSU_PARTY_CODE =cem.cust_id
and DCMM.FUNC_CODE not in (''Z'',''E'',''Y'')
and
((DCMM.current_value*(100+DCMM.actl_tolerance_pcnt)/100)-
DCMM.dc_nobill_util_amt-DCMM.bill_lodg_amt-DCMM.DC_NOBILL_FRUCT_AMT) >0
and DCMM.CURRENT_VALUE !=0
AND DCMM.DATE_OPND <=
'||''''||G_Current_Business_Date||'''' || '
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
Trim(Dcmm.ISSU_PARTY_CODE) Customer_Id,
DCMM.DC_REF_NUM Contract_id,
GLCONTRA.FORACID OFFICE_ACCOUNT,
GLCONTRA.GL_SUB_HEAD_CODE VISION_GL,
DCMM.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
DCMM.ACTL_CRNCY_CODE TRAN_CCY,
''C'' TRAN_TYPE,
ABS(dcavailvalue(DCMM.DC_REF_NUM, db_stat_date))
TRaN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NULL TRAN_ID,
DCMM.ACTL_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
GLCONTRA.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
DCMM' || V_DB_Link || ', DCRM' || V_DB_Link || ',
DCEM' || V_DB_Link || ',GCT' || V_DB_Link || ',
GAM' || V_DB_Link || ' GLCONTRA,DCMM' ||
V_DB_Link || ' X,CEM' || V_DB_Link || '
WHERE DCMM.DC_B2KID = DCEM.DC_B2KID
AND DCMM.DC_REG_TYPE = DCRM.REG_TYPE
AND DCEM.REMARKS = ''DC Opening''
AND DCRM.INW_OUT_DC_IND = ''O''
AND DCEM.EVENT_DATE <= db_stat_date
AND DCMM.ENTITY_CRE_FLG = ''Y''
AND DCMM.DEL_FLG <> ''Y''
AND GLCONTRA.ACID = DCMM.DC_CONTRA_ACID
AND X.SOL_ID=DCMM.SOL_ID
AND X.DC_REF_NUM=DCMM.DC_REF_NUM
and Dcmm.ISSU_PARTY_CODE =cem.cust_id
and DCMM.FUNC_CODE not in (''Z'',''E'',''Y'')
and ((DCMM.current_value*(100+DCMM.actl_tolerance_pcnt)/100)-
DCMM.dc_nobill_util_amt-DCMM.bill_lodg_amt-DCMM.DC_NOBILL_FRUCT_AMT) >0
and DCMM.CURRENT_VALUE !=0
AND DCMM.DATE_OPND <=
'||''''||G_Current_Business_Date||'''' || '
UNION ALL
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(T4.CUST_ID) CUSTOMER_ID,
DC_REF_NUM CONTRACT_ID,
T5.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
CASE WHEN T4.CUST_ID IS NULL THEN T3.SOL_ID ELSE
T4.SOL_ID END VISION_OUC,
NVL(T3.RPT_CODE,''NA'') COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
TRAN_CRNCY_CODE TRAN_CCY,
PART_TRAN_TYPE TRAN_TYPE,
TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
TRAN_ID,
REF_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
T4.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM DCEM' || V_DB_Link || ' T1,
DCMM' || V_DB_Link || ' T2,
TEMP_TXN_DTL_HTD T3,
GAM' || V_DB_Link || ' T4,
GAM' || V_DB_Link || ' T5,
CEM' || V_DB_Link || ' CEM,
(select * from gl_translation where
substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t6
WHERE T1.DC_B2KID = T2.DC_B2KID
AND DC_LIAB_TRAN_ID =TRAN_ID
AND T4.ACID =OUR_PARTY_ACID
AND T4.CUST_ID = CEM.CUST_ID(+)
AND T3.ACID =T5.ACID
AND T3.DEL_FLG =''N''
AND EVENT_DATE =
'||''''||G_Current_Business_Date||'''' || '
AND TRAN_DATE =
'||''''||G_Current_Business_Date||'''' || '
AND T3.GL_SUB_HEAD_CODE=t6.vision_gl
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(T4.CUST_ID) CUSTOMER_ID,
DC_REF_NUM CONTRACT_ID,
T5.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
CASE WHEN T4.CUST_ID IS NULL THEN T3.SOL_ID ELSE
T4.SOL_ID END VISION_OUC,
NVL(T3.RPT_CODE,''NA'') COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
TRAN_CRNCY_CODE TRAN_CCY,
PART_TRAN_TYPE TRAN_TYPE,
TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
TRAN_ID,
REF_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
T4.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM DCEM' || V_DB_Link || ' T1,
DCMM' || V_DB_Link || ' T2,
TEMP_TXN_DTL_HTD T3,
GAM' || V_DB_Link || ' T4,
GAM' || V_DB_Link || ' T5,
CEM' || V_DB_Link || ' CEM,
(select * from gl_translation where
substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t6
WHERE T1.DC_B2KID =T2.DC_B2KID
AND DC_CHRG_TRAN_ID =TRAN_ID
AND T4.ACID =OUR_PARTY_ACID
AND T4.CUST_ID = CEM.CUST_ID(+)
AND T3.ACID =T5.ACID
AND T3.DEL_FLG =''N''
AND EVENT_DATE =
'||''''||G_Current_Business_Date||''''||'
AND TRAN_DATE =
'||''''||G_Current_Business_Date||'''
AND T3.GL_SUB_HEAD_CODE=t6.vision_gl ');
EXECUTE IMMEDIATE ('INSERT INTO TRADEPRD_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
Trim(Dcmm.ISSU_PARTY_CODE) Customer_Id,
DCMM.DC_REF_NUM Contract_id,
GLCONST.FORACID OFFICE_ACCOUNT,
GLCONST.GL_SUB_HEAD_CODE VISION_GL,
DCMM.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
DCMM.ACTL_CRNCY_CODE TRAN_CCY,
''D'' TRAN_TYPE,
ABS(dcavailvalue(DCMM.DC_REF_NUM, db_stat_date))
TRaN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NULL TRAN_ID,
DCMM.ACTL_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
GLCONST.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
DCMM' || V_DB_Link || ', DCRM' || V_DB_Link || ',
DCEM' || V_DB_Link || ',GCT' || V_DB_Link || ',
GAM' || V_DB_Link || ' GLCONST,DCMM' || V_DB_Link
|| ' X,CEM' || V_DB_Link || '
WHERE DCMM.DC_B2KID = DCEM.DC_B2KID
AND DCMM.DC_REG_TYPE = DCRM.REG_TYPE
AND DCEM.REMARKS = ''DC Opening''
AND DCRM.INW_OUT_DC_IND = ''O''
AND DCEM.EVENT_DATE <= db_stat_date
AND DCMM.ENTITY_CRE_FLG = ''Y''
AND DCMM.DEL_FLG <> ''Y''
AND GLCONST.ACID = DCMM.DC_CONST_ACID
AND X.SOL_ID=DCMM.SOL_ID
AND X.DC_REF_NUM=DCMM.DC_REF_NUM
and Dcmm.ISSU_PARTY_CODE =cem.cust_id
and DCMM.FUNC_CODE not in (''Z'',''E'',''Y'')
and
((DCMM.current_value*(100+DCMM.actl_tolerance_pcnt)/100)-
DCMM.dc_nobill_util_amt-DCMM.bill_lodg_amt-DCMM.DC_NOBILL_FRUCT_AMT) >0
and DCMM.CURRENT_VALUE !=0
AND DCMM.DATE_OPND <=
'||''''||G_Current_Business_Date||'''' || '
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
Trim(Dcmm.ISSU_PARTY_CODE) Customer_Id,
DCMM.DC_REF_NUM Contract_id,
GLCONTRA.FORACID OFFICE_ACCOUNT,
GLCONTRA.GL_SUB_HEAD_CODE VISION_GL,
DCMM.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
DCMM.ACTL_CRNCY_CODE TRAN_CCY,
''C'' TRAN_TYPE,
ABS(dcavailvalue(DCMM.DC_REF_NUM, db_stat_date))
TRaN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NULL TRAN_ID,
DCMM.ACTL_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
GLCONTRA.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
DCMM' || V_DB_Link || ', DCRM' || V_DB_Link || ',
DCEM' || V_DB_Link || ',GCT' || V_DB_Link || ',
GAM' || V_DB_Link || ' GLCONTRA,DCMM' ||
V_DB_Link || ' X,CEM' || V_DB_Link || '
WHERE DCMM.DC_B2KID = DCEM.DC_B2KID
AND DCMM.DC_REG_TYPE = DCRM.REG_TYPE
AND DCEM.REMARKS = ''DC Opening''
AND DCRM.INW_OUT_DC_IND = ''O''
AND DCEM.EVENT_DATE <= db_stat_date
AND DCMM.ENTITY_CRE_FLG = ''Y''
AND DCMM.DEL_FLG <> ''Y''
AND GLCONTRA.ACID = DCMM.DC_CONTRA_ACID
AND X.SOL_ID=DCMM.SOL_ID
AND X.DC_REF_NUM=DCMM.DC_REF_NUM
and Dcmm.ISSU_PARTY_CODE =cem.cust_id
and DCMM.FUNC_CODE not in (''Z'',''E'',''Y'')
and ((DCMM.current_value*(100+DCMM.actl_tolerance_pcnt)/100)-
DCMM.dc_nobill_util_amt-DCMM.bill_lodg_amt-DCMM.DC_NOBILL_FRUCT_AMT) >0
and DCMM.CURRENT_VALUE !=0
AND DCMM.DATE_OPND <=
'||''''||G_Current_Business_Date||'''' || '
UNION ALL
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(T4.CUST_ID) CUSTOMER_ID,
DC_REF_NUM CONTRACT_ID,
T5.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
CASE WHEN T4.CUST_ID IS NULL THEN T3.SOL_ID ELSE
T4.SOL_ID END VISION_OUC,
NVL(T3.RPT_CODE,''NA'') COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
TRAN_CRNCY_CODE TRAN_CCY,
PART_TRAN_TYPE TRAN_TYPE,
TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
TRAN_ID,
REF_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
T4.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM DCEM' || V_DB_Link || ' T1,
DCMM' || V_DB_Link || ' T2,
TEMP_TXN_DTL_HTD T3,
GAM' || V_DB_Link || ' T4,
GAM' || V_DB_Link || ' T5,
CEM' || V_DB_Link || ' CEM,
(select * from gl_translation where
substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t6
WHERE T1.DC_B2KID = T2.DC_B2KID
AND DC_LIAB_TRAN_ID =TRAN_ID
AND T4.ACID =OUR_PARTY_ACID
AND T4.CUST_ID = CEM.CUST_ID(+)
AND T3.ACID =T5.ACID
AND T3.DEL_FLG =''N''
AND EVENT_DATE =
'||''''||G_Current_Business_Date||'''' || '
AND TRAN_DATE =
'||''''||G_Current_Business_Date||'''' || '
AND T3.GL_SUB_HEAD_CODE=t6.vision_gl
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(T4.CUST_ID) CUSTOMER_ID,
DC_REF_NUM CONTRACT_ID,
T5.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
CASE WHEN T4.CUST_ID IS NULL THEN T3.SOL_ID ELSE
T4.SOL_ID END VISION_OUC,
NVL(T3.RPT_CODE,''NA'') COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
TRAN_CRNCY_CODE TRAN_CCY,
PART_TRAN_TYPE TRAN_TYPE,
TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
TRAN_ID,
REF_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
T4.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM DCEM' || V_DB_Link || ' T1,
DCMM' || V_DB_Link || ' T2,
TEMP_TXN_DTL_HTD T3,
GAM' || V_DB_Link || ' T4,
GAM' || V_DB_Link || ' T5,
CEM' || V_DB_Link || ' CEM,
(select * from gl_translation where
substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t6
WHERE T1.DC_B2KID =T2.DC_B2KID
AND DC_CHRG_TRAN_ID =TRAN_ID
AND T4.ACID =OUR_PARTY_ACID
AND T4.CUST_ID = CEM.CUST_ID(+)
AND T3.ACID =T5.ACID
AND T3.DEL_FLG =''N''
AND EVENT_DATE =
'||''''||G_Current_Business_Date||''''||'
AND TRAN_DATE =
'||''''||G_Current_Business_Date||'''
AND T3.GL_SUB_HEAD_CODE=t6.vision_gl ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');
EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables DCEM/DCMM/HTD/GAM
Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TRADEPRD_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getFinacleLCEnrichStgData;

/*#######################################################################
##################################################
Name : getFinacleBGEnrichStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CONTRACTS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x
#########################################################################
################################################*/

FUNCTION getFinacleBGEnrichStgData(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinacleBGEnrichStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;
/* Dump the required records into the staging table, to be
processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'TRADEPRD_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TRADEPRD_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table TRADEPRD_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO TRADEPRD_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(BGM.CUST_ID) CUSTOEMR_ID,
BGM.BG_SRL_NUM CONTRACT_ID,
GLCON.FORACID OFFICE_ACCOUNT,
GLCON.GL_SUB_HEAD_CODE VISION_GL,
BGM.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
BGM.CRNCY_CODE TRAN_CCY,
''D'' TRAN_TYPE ,
ABS(BG_AMT) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NULL TRAN_ID,
BGM.CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
GAM.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
CMG' || V_DB_Link || ', GAM' || V_DB_Link || ',
BGM' || V_DB_Link || ', BGP' || V_DB_Link || ',
GCT' || V_DB_Link || ',GAM' || V_DB_Link || '
GLCON,CEM' || V_DB_Link || ' CEM
WHERE BGP.BG_TYPE = BGM.BG_TYPE
AND CMG.CUST_ID = BGM.CUST_ID
AND BGM.OPER_ACID = GAM.ACID
AND GLCON.ACID=CONT_LIAB_CONTRA_ACID
AND CMG.CUST_ID = CEM.CUST_ID(+)
AND BGM.ISSUE_DATE <= DB_STAT_DATE
AND (BGM.CLOSE_DATE IS NULL OR BGM.CLOSE_DATE >
DB_STAT_DATE)
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(BGM.CUST_ID) CUSTOEMR_ID,
BGM.BG_SRL_NUM CONTRACT_ID,
GLOFF.FORACID OFFICE_ACCOUNT,
GLOFF.GL_SUB_HEAD_CODE VISION_GL,
BGM.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
BGM.CRNCY_CODE TRAN_CCY,
''C'' TRAN_TYPE ,
ABS(BG_AMT) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NULL TRAN_ID,
BGM.CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
GAM.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
CMG' || V_DB_Link || ', GAM' || V_DB_Link || ',
BGM' || V_DB_Link || ', BGP' || V_DB_Link || ',
GCT' || V_DB_Link || ',GAM' || V_DB_Link || '
GLOFF,CEM' || V_DB_Link || ' CEM
WHERE BGP.BG_TYPE = BGM.BG_TYPE
AND CMG.CUST_ID = BGM.CUST_ID
AND BGM.OPER_ACID = GAM.ACID
AND GLOFF.ACID=CONT_LIAB_ACID
AND CMG.CUST_ID = CEM.CUST_ID(+)
AND BGM.ISSUE_DATE <= DB_STAT_DATE
AND BGM.bg_status not in (''R'',''Z'',''K'')
AND (BGM.CLOSE_DATE IS NULL OR BGM.CLOSE_DATE >
DB_STAT_DATE)
UNION ALL
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(T4.CUST_ID ) CUSTOMER_ID,
BG_SRL_NUM CONTRACT_ID,
T5.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
CASE WHEN T4.CUST_ID IS NULL THEN T3.SOL_ID ELSE
T4.SOL_ID END VISION_OUC,
NVL(T3.RPT_CODE,''NA'') COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
TRAN_CRNCY_CODE TRAN_CCY,
PART_TRAN_TYPE TRAN_TYPE,
TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
TRAN_ID,
REF_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
T4.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM BET' || V_DB_Link || ' T1,
BGM' || V_DB_Link || ' T2,
TEMP_TXN_DTL_HTD T3,
'||G_GAM_Table||'' || V_DB_Link || ' T4,
'||G_GAM_Table||'' || V_DB_Link || ' T5,
CEM' || V_DB_Link || ' CEM,
(SELECT * FROM GL_TRANSLATION where
SUBSTR(MAPPING_SOURCE_VISION_GL ,1,1) in (''5'',''6'')) T6
WHERE T1.BG_B2KID =T2.BG_B2KID
AND CONT_LIAB_TRAN_ID =TRAN_ID
AND T4.ACID =OPER_ACID
AND T4.CUST_ID = CEM.CUST_ID(+)
AND T3.ACID=T5.ACID
AND T3.DEL_FLG =''N''
AND EVENT_DATE =
'||''''||G_Current_Business_Date||'''' ||'
AND TRAN_DATE =
'||''''||G_Current_Business_Date||'''' ||'
AND T3.GL_SUB_HEAD_CODE= T6.VISION_GL
AND t2.bg_status not in (''R'',''Z'',''K'')
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(T4.CUST_ID) CUSTOMER_ID,
BG_SRL_NUM CONTRACT_ID,
T5.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
CASE WHEN T4.CUST_ID IS NULL THEN T3.SOL_ID ELSE
T4.SOL_ID END VISION_OUC,
NVL(T3.RPT_CODE,''NA'') COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
TRAN_CRNCY_CODE TRAN_CCY,
PART_TRAN_TYPE TRAN_TYPE,
TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
TRAN_ID,
REF_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
T4.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM BET' || V_DB_Link || ' T1,
BGM' || V_DB_Link || ' T2,
TEMP_TXN_DTL_HTD T3,
'||G_GAM_Table||'' || V_DB_Link || ' T4,
'||G_GAM_Table||'' || V_DB_Link || ' T5,
CEM' || V_DB_Link || ' CEM,
(SELECT * FROM GL_TRANSLATION where
SUBSTR(MAPPING_SOURCE_VISION_GL ,1,1) in (''5'',''6'')) T6
WHERE T1.BG_B2KID =T2.BG_B2KID
AND CHRG_TRAN_ID =TRAN_ID
AND T4.ACID =OPER_ACID
AND T4.CUST_ID = CEM.CUST_ID(+)
AND T3.ACID=T5.ACID
AND T3.DEL_FLG =''N''
AND EVENT_DATE =
'||''''||G_Current_Business_Date||'''' ||'
AND TRAN_DATE =
'||''''||G_Current_Business_Date||'''
AND BGM.bg_status not in (''R'',''Z'',''K'')
AND T3.GL_SUB_HEAD_CODE= T6.VISION_GL ');

IF ( G_LastBusinessDateRun = '01-JAN-1900') THEN


EXECUTE IMMEDIATE ('INSERT INTO TRADEPRD_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(BGM.CUST_ID) CUSTOEMR_ID,
BGM.BG_SRL_NUM CONTRACT_ID,
GLCON.FORACID OFFICE_ACCOUNT,
GLCON.GL_SUB_HEAD_CODE VISION_GL,
BGM.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
BGM.CRNCY_CODE TRAN_CCY,
''D'' TRAN_TYPE ,
ABS(BG_AMT) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NULL TRAN_ID,
BGM.CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
GAM.SCHM_TYPE,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
CMG' || V_DB_Link || ', GAM' || V_DB_Link || ',
BGM' || V_DB_Link || ', BGP' || V_DB_Link || ',
GCT' || V_DB_Link || ',GAM' || V_DB_Link || '
GLCON,CEM' || V_DB_Link || ' CEM
WHERE BGP.BG_TYPE = BGM.BG_TYPE
AND CMG.CUST_ID = BGM.CUST_ID
AND BGM.OPER_ACID = GAM.ACID
AND GLCON.ACID=CONT_LIAB_CONTRA_ACID
AND CMG.CUST_ID = CEM.CUST_ID(+)
AND BGM.bg_status not in (''R'',''Z'',''K'')
AND BGM.ISSUE_DATE <= DB_STAT_DATE
AND (BGM.CLOSE_DATE IS NULL OR BGM.CLOSE_DATE >
DB_STAT_DATE)
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(BGM.CUST_ID) CUSTOEMR_ID,
BGM.BG_SRL_NUM CONTRACT_ID,
GLOFF.FORACID OFFICE_ACCOUNT,
GLOFF.GL_SUB_HEAD_CODE VISION_GL,
BGM.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
BGM.CRNCY_CODE TRAN_CCY,
''C'' TRAN_TYPE ,
ABS(BG_AMT) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NULL TRAN_ID,
BGM.CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
GAM.SCHM_TYPE,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
CMG' || V_DB_Link || ', GAM' || V_DB_Link || ',
BGM' || V_DB_Link || ', BGP' || V_DB_Link || ',
GCT' || V_DB_Link || ',GAM' || V_DB_Link || '
GLOFF,CEM' || V_DB_Link || ' CEM
WHERE BGP.BG_TYPE = BGM.BG_TYPE
AND CMG.CUST_ID = BGM.CUST_ID
AND BGM.OPER_ACID = GAM.ACID
AND GLOFF.ACID=CONT_LIAB_ACID
AND CMG.CUST_ID = CEM.CUST_ID(+)
AND BGM.bg_status not in (''R'',''Z'',''K'')
AND BGM.ISSUE_DATE <= DB_STAT_DATE
AND (BGM.CLOSE_DATE IS NULL OR BGM.CLOSE_DATE >
DB_STAT_DATE)');
ELSE
EXECUTE IMMEDIATE ('INSERT INTO TRADEPRD_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(BGM.CUST_ID) CUSTOEMR_ID,
BGM.BG_SRL_NUM CONTRACT_ID,
GLCON.FORACID OFFICE_ACCOUNT,
GLCON.GL_SUB_HEAD_CODE VISION_GL,
BGM.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
BGM.CRNCY_CODE TRAN_CCY,
''D'' TRAN_TYPE ,
ABS(BG_AMT) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NULL TRAN_ID,
BGM.CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
GAM.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
CMG' || V_DB_Link || ', GAM' || V_DB_Link || ',
BGM' || V_DB_Link || ', BGP' || V_DB_Link || ',
GCT' || V_DB_Link || ',GAM' || V_DB_Link || '
GLCON,CEM' || V_DB_Link || ' CEM
WHERE BGP.BG_TYPE = BGM.BG_TYPE
AND CMG.CUST_ID = BGM.CUST_ID
AND BGM.OPER_ACID = GAM.ACID
AND GLCON.ACID=CONT_LIAB_CONTRA_ACID
AND CMG.CUST_ID = CEM.CUST_ID(+)
AND BGM.bg_status not in (''R'',''Z'',''K'')
AND BGM.ISSUE_DATE <= DB_STAT_DATE
AND (BGM.CLOSE_DATE IS NULL OR BGM.CLOSE_DATE >
DB_STAT_DATE)
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(BGM.CUST_ID) CUSTOEMR_ID,
BGM.BG_SRL_NUM CONTRACT_ID,
GLOFF.FORACID OFFICE_ACCOUNT,
GLOFF.GL_SUB_HEAD_CODE VISION_GL,
BGM.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
BGM.CRNCY_CODE TRAN_CCY,
''C'' TRAN_TYPE ,
ABS(BG_AMT) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NULL TRAN_ID,
BGM.CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
GAM.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
CMG' || V_DB_Link || ', GAM' || V_DB_Link || ',
BGM' || V_DB_Link || ', BGP' || V_DB_Link || ',
GCT' || V_DB_Link || ',GAM' || V_DB_Link || '
GLOFF,CEM' || V_DB_Link || ' CEM
WHERE BGP.BG_TYPE = BGM.BG_TYPE
AND CMG.CUST_ID = BGM.CUST_ID
AND BGM.OPER_ACID = GAM.ACID
AND GLOFF.ACID=CONT_LIAB_ACID
AND CMG.CUST_ID = CEM.CUST_ID(+)
AND BGM.bg_status not in (''R'',''Z'',''K'')
AND BGM.ISSUE_DATE <= DB_STAT_DATE
AND (BGM.CLOSE_DATE IS NULL OR BGM.CLOSE_DATE >
DB_STAT_DATE)
UNION ALL
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(T4.CUST_ID) CUSTOMER_ID,
BG_SRL_NUM CONTRACT_ID,
T5.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
CASE WHEN T4.CUST_ID IS NULL THEN T3.SOL_ID ELSE
T4.SOL_ID END VISION_OUC,
NVL(T3.RPT_CODE,''NA'') COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
TRAN_CRNCY_CODE TRAN_CCY,
PART_TRAN_TYPE TRAN_TYPE,
TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
TRAN_ID,
REF_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
T4.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM BET' || V_DB_Link || ' T1,
BGM' || V_DB_Link || ' T2,
TEMP_TXN_DTL_HTD T3,
'||G_GAM_Table||'' || V_DB_Link || ' T4,
'||G_GAM_Table||'' || V_DB_Link || ' T5,
CEM' || V_DB_Link || ' CEM,
(SELECT * FROM GL_TRANSLATION where
SUBSTR(MAPPING_SOURCE_VISION_GL ,1,1) in (''5'',''6'')) T6
WHERE T1.BG_B2KID =T2.BG_B2KID
AND CONT_LIAB_TRAN_ID =TRAN_ID
AND T4.ACID =OPER_ACID
AND T4.CUST_ID = CEM.CUST_ID(+)
AND T3.ACID=T5.ACID
AND T3.DEL_FLG =''N''
AND T2.bg_status not in (''R'',''Z'',''K'')
AND EVENT_DATE =
'||''''||G_Current_Business_Date||'''' ||'
AND TRAN_DATE =
'||''''||G_Current_Business_Date||'''' ||'
AND T3.GL_SUB_HEAD_CODE= T6.VISION_GL
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(T4.CUST_ID) CUSTOMER_ID,
BG_SRL_NUM CONTRACT_ID,
T5.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
CASE WHEN T4.CUST_ID IS NULL THEN T3.SOL_ID ELSE
T4.SOL_ID END VISION_OUC,
NVL(T3.RPT_CODE,''NA'') COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
TRAN_CRNCY_CODE TRAN_CCY,
PART_TRAN_TYPE TRAN_TYPE,
TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
TRAN_ID,
REF_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
T4.SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM BET' || V_DB_Link || ' T1,
BGM' || V_DB_Link || ' T2,
TEMP_TXN_DTL_HTD T3,
'||G_GAM_Table||'' || V_DB_Link || ' T4,
'||G_GAM_Table||'' || V_DB_Link || ' T5,
CEM' || V_DB_Link || ' CEM,
(SELECT * FROM GL_TRANSLATION where
SUBSTR(MAPPING_SOURCE_VISION_GL ,1,1) in (''5'',''6'')) T6
WHERE T1.BG_B2KID =T2.BG_B2KID
AND CHRG_TRAN_ID =TRAN_ID
AND T4.ACID =OPER_ACID
AND T4.CUST_ID = CEM.CUST_ID(+)
AND T3.ACID=T5.ACID
AND T3.DEL_FLG =''N''
AND T2.bg_status not in (''R'',''Z'',''K'')
AND EVENT_DATE =
'||''''||G_Current_Business_Date||'''' ||'
AND TRAN_DATE =
'||''''||G_Current_Business_Date||'''
AND T3.GL_SUB_HEAD_CODE= T6.VISION_GL ');
END IF;

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables BET/BGM/HTD/GAM
Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TRADEPRD_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;
END getFinacleBGEnrichStgData;

/*#######################################################################
##################################################
Name : getFinacleBillsEnrichStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CONTRACTS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getFinacleBillsEnrichStgData(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinacleBillsEnrichStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'TRADEPRD_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TRADEPRD_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/
writeLogInfo('Time of current execution obtained
from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table TRADEPRD_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO TRADEPRD_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T2.PARTY_CODE) CUSTOMER_ID,
T1.BILL_ID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
T3.ACCT_CRNCY_CODE TRAN_CCY,
CASE WHEN T1.BILL_FUNC =''G'' THEN ''D'' ELSE
''C'' END TRAN_TYPE,
T2.BILL_AMT TRAN_AMT,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') TRAN_DATE,
T1.CONT_TRAN_ID,
T3.ACCT_CRNCY_CODE MIS_CURRENCY,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') VALUE_DATE,
T3.SCHM_TYPE, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
FBH' || V_DB_Link || ' T1,
FBM' || V_DB_Link || ' T2,
'||G_GAM_Table||'' || V_DB_Link || ' T3,
FBR' || V_DB_Link || ' FBR,
FCP' || V_DB_Link || ' FCP,
CEM' || V_DB_Link || ' CEM
WHERE T1.BILL_ID =T2.BILL_ID
AND T2.PARTY_CODE = CEM.CUST_ID(+)
AND t2.REG_TYPE = FCP.REG_TYPE
And t2.REG_SUB_TYPE = FCP.REG_SUB_TYPE
And t2.BILL_CRNCY_CODE = FCP.REG_CRNCY_CODE
AND t2.sol_id = t3.sol_id
And FCP.DC_ACCPT_CUST_LIAB_BACID = t3.bacid
AND t2.REG_TYPE = FBR.REG_TYPE
AND t2.BP_ACID is null
-- AND t2.OPER_CHARGE_ACID is null
AND T1.SOL_ID =T2.SOL_ID
AND T1.BILL_FUNC IN (''G'',''R'')
And t2.bill_stat not in (''Z'',''R'')
AND T2.entity_cre_flg = ''Y''
AND T1.DEL_FLG !=''Y''
AND T3.DEL_FLG =''N''
AND T2.DEL_FLG !=''Y''
AND T2.CLS_DATE IS NULL
AND T2.BILL_DATE <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T2.PARTY_CODE) CUSTOMER_ID,
T1.BILL_ID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
T3.ACCT_CRNCY_CODE TRAN_CCY,
CASE WHEN T1.BILL_FUNC =''G'' THEN ''D'' ELSE
''C'' END TRAN_TYPE,
T2.BILL_AMT TRAN_AMT,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') TRAN_DATE,
T1.CONT_TRAN_ID,
T3.ACCT_CRNCY_CODE MIS_CURRENCY,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') VALUE_DATE,
T3.SCHM_TYPE, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
FBH' || V_DB_Link || ' T1,
FBM' || V_DB_Link || ' T2,
'||G_GAM_Table||'' || V_DB_Link || ' T3,
FBR' || V_DB_Link || ' FBR,
FCP' || V_DB_Link || ' FCP,
CEM' || V_DB_Link || ' CEM
WHERE T1.BILL_ID =T2.BILL_ID
AND T2.PARTY_CODE = CEM.CUST_ID(+)
AND t2.REG_TYPE = FCP.REG_TYPE
And t2.REG_SUB_TYPE = FCP.REG_SUB_TYPE
And t2.BILL_CRNCY_CODE = FCP.REG_CRNCY_CODE
AND t2.sol_id = t3.sol_id
AND t2.BILL_CRNCY_CODE= t3.ACCT_CRNCY_CODE
And FCP.DC_ACCPT_BANK_LIAB_BACID = t3.bacid
AND t2.REG_TYPE = FBR.REG_TYPE
AND t2.BP_ACID is null
-- AND t2.OPER_CHARGE_ACID is null
AND T1.SOL_ID =T2.SOL_ID
AND T1.BILL_FUNC IN (''G'',''R'')
And t2.bill_stat not in (''Z'',''R'')
AND T2.entity_cre_flg = ''Y''
AND T1.DEL_FLG !=''Y''
AND T3.DEL_FLG =''N''
AND T2.DEL_FLG !=''Y''
AND T2.CLS_DATE IS NULL
AND T2.BILL_DATE <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T2.PARTY_CODE) CUSTOMER_ID,
T1.BILL_ID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
T3.ACCT_CRNCY_CODE TRAN_CCY,
CASE WHEN T1.BILL_FUNC =''R'' THEN ''C'' ELSE
''D'' END TRAN_TYPE,
T2.BILL_AMT TRAN_AMT,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') TRAN_DATE,
T1.CONT_TRAN_ID,
T3.ACCT_CRNCY_CODE MIS_CURRENCY,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') VALUE_DATE,
T3.SCHM_TYPE, '''||G_Current_Business_Date ||'''
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
FBH@FINACLEPROD T1,
FBM@FINACLEPROD T2,
GAM@FINACLEPROD T3,
CEM@FINACLEPROD CEM
WHERE T1.BILL_ID =T2.BILL_ID
--AND T2.BP_ACID = T3.acid
AND case when T2.BP_ACID is null then
t2.OPER_CHARGE_ACID else T2.BP_ACID end = T3.acid
AND T3.DEL_FLG =''N''
AND T2.PARTY_CODE = CEM.CUST_ID(+)
AND NVL(T2.REG_TYPE,''NA'') NOT IN
(''IWTT'',''OWTT'')
AND T1.SOL_ID =T2.SOL_ID
AND T1.BILL_FUNC IN (''G'',''R'')
AND T2.entity_cre_flg = ''Y''
AND T1.DEL_FLG !=''Y''
AND T2.DEL_FLG !=''Y''
AND T2.CLS_DATE IS NULL
AND T2.BILL_DATE <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T2.PARTY_CODE) CUSTOMER_ID,
T1.BILL_ID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
T3.ACCT_CRNCY_CODE TRAN_CCY,
CASE WHEN T1.BILL_FUNC =''G'' THEN ''D'' ELSE
''C'' END TRAN_TYPE,
T2.BILL_AMT TRAN_AMT,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') TRAN_DATE,
T1.CONT_TRAN_ID,
T3.ACCT_CRNCY_CODE MIS_CURRENCY,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') VALUE_DATE,
T3.SCHM_TYPE, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
FBH' || V_DB_Link || ' T1,
FBM' || V_DB_Link || ' T2,
'||G_GAM_Table||'' || V_DB_Link || ' T3,
FBR' || V_DB_Link || ' FBR,
FCP' || V_DB_Link || ' FCP,
CEM' || V_DB_Link || ' CEM
WHERE T1.BILL_ID =T2.BILL_ID
AND T2.PARTY_CODE = CEM.CUST_ID(+)
AND t2.REG_TYPE = FCP.REG_TYPE
And t2.REG_SUB_TYPE = FCP.REG_SUB_TYPE
And t2.BILL_CRNCY_CODE = FCP.REG_CRNCY_CODE
AND t2.sol_id = t3.sol_id
And FCP.DC_ACCPT_CUST_LIAB_BACID = t3.bacid
AND t2.REG_TYPE = FBR.REG_TYPE
AND t2.BP_ACID is null
-- AND t2.OPER_CHARGE_ACID is null
AND T1.SOL_ID =T2.SOL_ID
AND T1.BILL_FUNC IN (''G'',''R'')
And t2.bill_stat not in (''Z'',''R'')
AND T2.entity_cre_flg = ''Y''
AND T1.DEL_FLG !=''Y''
AND T3.DEL_FLG =''N''
AND T2.DEL_FLG !=''Y''
AND T2.CLS_DATE IS NULL
AND T2.BILL_DATE <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T2.PARTY_CODE) CUSTOMER_ID,
T1.BILL_ID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
T3.ACCT_CRNCY_CODE TRAN_CCY,
CASE WHEN T1.BILL_FUNC =''G'' THEN ''D'' ELSE
''C'' END TRAN_TYPE,
T2.BILL_AMT TRAN_AMT,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') TRAN_DATE,
T1.CONT_TRAN_ID,
T3.ACCT_CRNCY_CODE MIS_CURRENCY,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') VALUE_DATE,
T3.SCHM_TYPE, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
FBH' || V_DB_Link || ' T1,
FBM' || V_DB_Link || ' T2,
'||G_GAM_Table||'' || V_DB_Link || ' T3,
FBR' || V_DB_Link || ' FBR,
FCP' || V_DB_Link || ' FCP,
CEM' || V_DB_Link || ' CEM
WHERE T1.BILL_ID =T2.BILL_ID
AND T2.PARTY_CODE = CEM.CUST_ID(+)
AND t2.REG_TYPE = FCP.REG_TYPE
And t2.REG_SUB_TYPE = FCP.REG_SUB_TYPE
And t2.BILL_CRNCY_CODE = FCP.REG_CRNCY_CODE
AND t2.sol_id = t3.sol_id
AND t2.BILL_CRNCY_CODE= t3.ACCT_CRNCY_CODE
And FCP.DC_ACCPT_BANK_LIAB_BACID = t3.bacid
AND t2.REG_TYPE = FBR.REG_TYPE
AND t2.BP_ACID is null
-- AND t2.OPER_CHARGE_ACID is null
AND T1.SOL_ID =T2.SOL_ID
AND T1.BILL_FUNC IN (''G'',''R'')
And t2.bill_stat not in (''Z'',''R'')
AND T2.entity_cre_flg = ''Y''
AND T1.DEL_FLG !=''Y''
AND T3.DEL_FLG =''N''
AND T2.DEL_FLG !=''Y''
AND T2.CLS_DATE IS NULL
AND T2.BILL_DATE <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T2.PARTY_CODE) CUSTOMER_ID,
T1.BILL_ID CONTRACT_ID,
FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
NVL(T3.RPT_CODE,''NA'') COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
T3.TRAN_CRNCY_CODE TRAN_CCY,
T3.PART_TRAN_TYPE TRAN_TYPE,
T3.TRAN_AMT,
T3.TRAN_DATE,
/* T3.VALUE_DATE, '||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE, */
T3.TRAN_ID,
T3.REF_CRNCY_CODE MIS_CURRENCY,

NVL(T3.VALUE_DATE,TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-
RRRR'')) VALUE_DATE,
T4.SCHM_TYPE, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM FAE' || V_DB_Link || ' T1,
FBM' || V_DB_Link || ' T2,
TEMP_TXN_DTL_HTD T3,
'||G_GAM_Table||'' || V_DB_Link || ' T4,
CEM' || V_DB_Link || ' CEM,
(SELECT * FROM GL_TRANSLATION where
SUBSTR(MAPPING_SOURCE_VISION_GL ,1,1) in (''5'',''6'')) T6
WHERE T1.BILL_ID =T2.BILL_ID
AND T1.PART_TRAN_SRL_NUM =T3.PART_TRAN_SRL_NUM
AND T1.TRAN_ID =T3.TRAN_ID
AND T3.ACID =T4.ACID
AND T3.DEL_FLG =''N''
AND T4.CUST_ID = CEM.CUST_ID(+)
AND T2.REG_TYPE NOT IN (''IWTT'',''OWTT'')
-- AND T1.SOL_ID =T4.SOL_ID
AND T1.SOL_ID =T2.SOL_ID
AND T1.TRAN_DATE = T3.TRAN_DATE
AND T3.GL_SUB_HEAD_CODE=T6.VISION_GL
AND T3.TRAN_DATE =
'||''''||G_Current_Business_Date||'''');

EXECUTE IMMEDIATE ('INSERT INTO TRADEPRD_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T2.PARTY_CODE) CUSTOMER_ID,
T1.BILL_ID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
T3.ACCT_CRNCY_CODE TRAN_CCY,
CASE WHEN T1.BILL_FUNC =''G'' THEN ''D'' ELSE
''C'' END TRAN_TYPE,
T2.BILL_AMT TRAN_AMT,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') TRAN_DATE,
T1.CONT_TRAN_ID,
T3.ACCT_CRNCY_CODE MIS_CURRENCY,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') VALUE_DATE,
T3.SCHM_TYPE, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
FBH' || V_DB_Link || ' T1,
FBM' || V_DB_Link || ' T2,
'||G_GAM_Table||'' || V_DB_Link || ' T3,
FBR' || V_DB_Link || ' FBR,
FCP' || V_DB_Link || ' FCP,
CEM' || V_DB_Link || ' CEM
WHERE T1.BILL_ID =T2.BILL_ID
AND T2.PARTY_CODE = CEM.CUST_ID(+)
AND t2.REG_TYPE = FCP.REG_TYPE
And t2.REG_SUB_TYPE = FCP.REG_SUB_TYPE
And t2.BILL_CRNCY_CODE = FCP.REG_CRNCY_CODE
AND t2.sol_id = t3.sol_id
And FCP.DC_ACCPT_CUST_LIAB_BACID = t3.bacid
AND t2.REG_TYPE = FBR.REG_TYPE
AND t2.BP_ACID is null
-- AND t2.OPER_CHARGE_ACID is null
AND T1.SOL_ID =T2.SOL_ID
AND T1.BILL_FUNC IN (''G'',''R'')
And t2.bill_stat not in (''Z'',''R'')
AND T2.entity_cre_flg = ''Y''
AND T1.DEL_FLG !=''Y''
AND T3.DEL_FLG =''N''
AND T2.DEL_FLG !=''Y''
AND T2.CLS_DATE IS NULL
AND T2.BILL_DATE <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T2.PARTY_CODE) CUSTOMER_ID,
T1.BILL_ID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
T3.ACCT_CRNCY_CODE TRAN_CCY,
CASE WHEN T1.BILL_FUNC =''G'' THEN ''D'' ELSE
''C'' END TRAN_TYPE,
T2.BILL_AMT TRAN_AMT,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') TRAN_DATE,
T1.CONT_TRAN_ID,
T3.ACCT_CRNCY_CODE MIS_CURRENCY,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') VALUE_DATE,
T3.SCHM_TYPE, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
FBH' || V_DB_Link || ' T1,
FBM' || V_DB_Link || ' T2,
'||G_GAM_Table||'' || V_DB_Link || ' T3,
FBR' || V_DB_Link || ' FBR,
FCP' || V_DB_Link || ' FCP,
CEM' || V_DB_Link || ' CEM
WHERE T1.BILL_ID =T2.BILL_ID
AND T2.PARTY_CODE = CEM.CUST_ID(+)
AND t2.REG_TYPE = FCP.REG_TYPE
And t2.REG_SUB_TYPE = FCP.REG_SUB_TYPE
And t2.BILL_CRNCY_CODE = FCP.REG_CRNCY_CODE
AND t2.sol_id = t3.sol_id
AND t2.BILL_CRNCY_CODE= t3.ACCT_CRNCY_CODE
And FCP.DC_ACCPT_BANK_LIAB_BACID = t3.bacid
AND t2.REG_TYPE = FBR.REG_TYPE
AND t2.BP_ACID is null
-- AND t2.OPER_CHARGE_ACID is null
AND T1.SOL_ID =T2.SOL_ID
AND T1.BILL_FUNC IN (''G'',''R'')
And t2.bill_stat not in (''Z'',''R'')
AND T2.entity_cre_flg = ''Y''
AND T1.DEL_FLG !=''Y''
AND T3.DEL_FLG =''N''
AND T2.DEL_FLG !=''Y''
AND T2.CLS_DATE IS NULL
AND T2.BILL_DATE <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T2.PARTY_CODE) CUSTOMER_ID,
T1.BILL_ID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
case when T3.ACCT_CRNCY_CODE <>
t2.bill_crncy_code then ''MUR'' else T3.ACCT_CRNCY_CODE end TRAN_CCY,
CASE WHEN T1.BILL_FUNC =''R'' THEN ''C'' ELSE
''D'' END TRAN_TYPE,
case when T3.ACCT_CRNCY_CODE <>
t2.bill_crncy_code then (T2.BILL_AMT*wash_rate) else T2.BILL_AMT end
TRAN_AMT,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') TRAN_DATE,
T1.CONT_TRAN_ID,
T2.bill_crncy_code MIS_CURRENCY,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') VALUE_DATE,
T3.SCHM_TYPE, '''||G_Current_Business_Date ||'''
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
FBH@FINACLEPROD T1,
FBM@FINACLEPROD T2,
GAM@FINACLEPROD T3,
CEM@FINACLEPROD CEM,
( Select rtlist_date,Fxd_Crncy_Code,
NVL(decode(FXD_CRNCY_CODE,''ITL'', var_crncy_units/1000,''JPY'',
var_crncy_units/100,''MGA'', var_crncy_units/100,''KES'',
var_crncy_units/100,var_crncy_units),0) WASH_RATE From Rlv@Finacleprod
Where (Rtlist_Date,Fxd_Crncy_Code) In (Select
Max(Rtlist_Date),Fxd_Crncy_Code
From
Rlv@Finacleprod Where Rtlist_Date <= '''|| G_Current_Business_Date ||'''
Group By
Fxd_Crncy_Code)) t4
WHERE T1.BILL_ID =T2.BILL_ID
-- AND T2.BP_ACID = T3.acid
AND case when T2.BP_ACID is null then
t2.OPER_CHARGE_ACID else T2.BP_ACID end = T3.acid
AND T3.DEL_FLG =''N''
AND T2.PARTY_CODE = CEM.CUST_ID(+)
AND NVL(T2.REG_TYPE,''NA'') NOT IN
(''IWTT'',''OWTT'')
AND T1.SOL_ID =T2.SOL_ID
AND T1.BILL_FUNC IN (''G'',''R'')
AND T2.entity_cre_flg = ''Y''
AND T1.DEL_FLG !=''Y''
AND T2.DEL_FLG !=''Y''
AND T2.CLS_DATE IS NULL
And acct_ownership=''O''
and t2.bill_crncy_code=t4.Fxd_Crncy_Code
AND T2.BILL_DATE <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T2.PARTY_CODE) CUSTOMER_ID,
T1.BILL_ID CONTRACT_ID,
FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
NVL(T3.RPT_CODE,''NA'') COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
T3.TRAN_CRNCY_CODE TRAN_CCY,
T3.PART_TRAN_TYPE TRAN_TYPE,
T3.TRAN_AMT,
T3.TRAN_DATE,
/* T3.VALUE_DATE, '||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE, */
T3.TRAN_ID,
T3.REF_CRNCY_CODE MIS_CURRENCY,

NVL(T3.VALUE_DATE,TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-
RRRR'')) VALUE_DATE,
T4.SCHM_TYPE, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM FAE' || V_DB_Link || ' T1,
FBM' || V_DB_Link || ' T2,
TEMP_TXN_DTL_HTD T3,
'||G_GAM_Table||'' || V_DB_Link || ' T4,
CEM' || V_DB_Link || ' CEM,
(SELECT * FROM GL_TRANSLATION where
SUBSTR(MAPPING_SOURCE_VISION_GL ,1,1) in (''5'',''6'')) T6
WHERE T1.BILL_ID =T2.BILL_ID
AND T1.PART_TRAN_SRL_NUM =T3.PART_TRAN_SRL_NUM
AND T1.TRAN_ID =T3.TRAN_ID
AND T3.ACID =T4.ACID
AND T3.DEL_FLG =''N''
AND T4.CUST_ID = CEM.CUST_ID(+)
AND T2.REG_TYPE NOT IN (''IWTT'',''OWTT'')
-- AND T1.SOL_ID =T4.SOL_ID
AND T1.SOL_ID =T2.SOL_ID
AND T1.TRAN_DATE = T3.TRAN_DATE
AND T3.GL_SUB_HEAD_CODE= T6.VISION_GL
AND T3.TRAN_DATE =
'||''''||G_Current_Business_Date||'''');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/FAE/FBM/HTD
Does not exists/not accessiable !! Aborting execution.');
RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TRADEPRD_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;
begin
writeLogInfo('INSERT INTO PWT_BILL_DETAILS (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
BILL_LIAB, BILL_CNTRY_CODE ,NOTL_CONV_RATE)
SELECT Distinct '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T2.PARTY_CODE) CUSTOMER_ID,
T1.BILL_ID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
case when T3.ACCT_CRNCY_CODE <> t2.bill_crncy_code then
''MUR'' else T3.ACCT_CRNCY_CODE end TRAN_CCY,
''D'' TRAN_TYPE,
case when T3.ACCT_CRNCY_CODE <> t2.bill_crncy_code then
(T2.BILL_AMT*wash_rate) else T2.BILL_AMT end TRAN_AMT,
T1.CONT_TRAN_ID,
T2.bill_crncy_code MIS_CURRENCY,
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
VALUE_DATE,
T3.SCHM_TYPE, '''||G_Current_Business_Date ||''' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
T2.BILL_LIAB,
t2.bill_cntry_code,

decode(t2.bill_crncy_code,''ESP'',(t2.notl_conv_rate*.01),''ITL'',(t2.not
l_conv_rate*.001),''MGA'',(t2.notl_conv_rate*.001),''JPY'',(t2.notl_conv_
rate*.01),''MUR'',1,t2.notl_conv_rate) NOTL_CONV_RATE
FROM
FBH@FINACLEPROD T1,
FBM@FINACLEPROD T2,
GAM@FINACLEPROD T3,
( Select rtlist_date,Fxd_Crncy_Code,
NVL(decode(FXD_CRNCY_CODE,''ITL'',
var_crncy_units/1000,''JPY'',var_crncy_units/100,''MGA'',
var_crncy_units/100,''KES'', var_crncy_units/100,var_crncy_units),0)
WASH_RATE
From Rlv@Finacleprod
Where (Rtlist_Date,Fxd_Crncy_Code) In (Select
Max(Rtlist_Date),Fxd_Crncy_Code
From
Rlv@Finacleprod Where Rtlist_Date <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
Group By
Fxd_Crncy_Code)) t4
WHERE T1.BILL_ID =T2.BILL_ID
AND case when T2.BP_ACID is null then
t2.OPER_CHARGE_ACID else T2.BP_ACID end = T3.acid
AND T3.DEL_FLG =''N''
AND NVL(T2.REG_TYPE,''NA'') NOT IN
(''IWTT'',''OWTT'')
AND T1.SOL_ID =T2.SOL_ID
AND T2.entity_cre_flg = ''Y''
and t1.ITC_START_DATE=t2.bill_date
AND T1.DEL_FLG !=''Y''
and t2.bill_stat != ''Z''
AND T2.DEL_FLG !=''Y''
and T2.reg_type=''BFD''
and t2.cls_flg!=''Y''
AND T2.CLS_DATE IS NULL
And acct_ownership<>''O''
and t2.bill_crncy_code=t4.Fxd_Crncy_Code
AND T2.BILL_DATE <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
union all
SELECT distinct '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T2.PARTY_CODE) CUSTOMER_ID,
T1.BILL_ID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
case when T3.ACCT_CRNCY_CODE <>
t2.bill_crncy_code then ''MUR'' else T3.ACCT_CRNCY_CODE end TRAN_CCY,
''D'' TRAN_TYPE,
case when T3.ACCT_CRNCY_CODE <>
t2.bill_crncy_code then (T2.BILL_AMT*wash_rate) else T2.BILL_AMT end
TRAN_AMT,
T1.CONT_TRAN_ID,
T2.bill_crncy_code MIS_CURRENCY,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') VALUE_DATE,
T3.SCHM_TYPE, '''||G_Current_Business_Date ||'''
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
T2.BILL_LIAB,
t2.bill_cntry_code,

decode(t2.bill_crncy_code,''MUR'',1,round((t1.bill_liab/t2.bill_amt),4))
NOTL_CONV_RATE
FROM
FBH@FINACLEPROD T1,
FBM@FINACLEPROD T2,
GAM@FINACLEPROD T3,
( Select rtlist_date,Fxd_Crncy_Code,
NVL(decode(FXD_CRNCY_CODE,''ITL'',
var_crncy_units/1000,''MGA'', var_crncy_units/100,''JPY'',
var_crncy_units/100,''KES'', var_crncy_units/100,var_crncy_units),0)
WASH_RATE
From Rlv@Finacleprod
Where (Rtlist_Date,Fxd_Crncy_Code) In (Select
Max(Rtlist_Date),Fxd_Crncy_Code
From
Rlv@Finacleprod Where Rtlist_Date <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
Group By
Fxd_Crncy_Code)) t4
WHERE T1.BILL_ID =T2.BILL_ID
AND case when T2.BP_ACID is null then
t2.OPER_CHARGE_ACID else T2.BP_ACID end = T3.acid
AND T3.DEL_FLG =''N''
AND T1.SOL_ID =T2.SOL_ID
and t1.ITC_START_DATE=t2.bill_date
AND T2.entity_cre_flg = ''Y''
and t2.bill_stat != ''Z''
AND T1.DEL_FLG !=''Y''
AND T2.DEL_FLG !=''Y''
and t2.reg_type =''FBP''
and t2.cls_flg!=''Y''
AND T2.CLS_DATE IS NULL
And acct_ownership<>''O''
and t2.bill_crncy_code=t4.Fxd_Crncy_Code(+)
AND T2.BILL_DATE <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')');

EXECUTE IMMEDIATE ('INSERT INTO PWT_BILL_DETAILS (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,
TRAN_ID,MIS_CURRENCY,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
BILL_LIAB, BILL_CNTRY_CODE ,NOTL_CONV_RATE)
SELECT Distinct '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T2.PARTY_CODE) CUSTOMER_ID,
T1.BILL_ID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
case when T3.ACCT_CRNCY_CODE <> t2.bill_crncy_code then
''MUR'' else T3.ACCT_CRNCY_CODE end TRAN_CCY,
''D'' TRAN_TYPE,
case when T3.ACCT_CRNCY_CODE <> t2.bill_crncy_code then
(T2.BILL_AMT*wash_rate) else T2.BILL_AMT end TRAN_AMT,
T1.CONT_TRAN_ID,
T2.bill_crncy_code MIS_CURRENCY,
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
VALUE_DATE,
T3.SCHM_TYPE, '''||G_Current_Business_Date ||''' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
T2.BILL_LIAB,
t2.bill_cntry_code,

decode(t2.bill_crncy_code,''ESP'',(t2.notl_conv_rate*.01),''ITL'',(t2.not
l_conv_rate*.001),''MGA'',(t2.notl_conv_rate*.001),''JPY'',(t2.notl_conv_
rate*.01),''MUR'',1,t2.notl_conv_rate) NOTL_CONV_RATE
FROM
FBH@FINACLEPROD T1,
FBM@FINACLEPROD T2,
GAM@FINACLEPROD T3,
( Select rtlist_date,Fxd_Crncy_Code,
NVL(decode(FXD_CRNCY_CODE,''ITL'',
var_crncy_units/1000,''JPY'',var_crncy_units/100,''MGA'',
var_crncy_units/100,''KES'', var_crncy_units/100,var_crncy_units),0)
WASH_RATE
From Rlv@Finacleprod
Where (Rtlist_Date,Fxd_Crncy_Code) In (Select
Max(Rtlist_Date),Fxd_Crncy_Code
From
Rlv@Finacleprod Where Rtlist_Date <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
Group By
Fxd_Crncy_Code)) t4
WHERE T1.BILL_ID =T2.BILL_ID
AND case when T2.BP_ACID is null then
t2.OPER_CHARGE_ACID else T2.BP_ACID end = T3.acid
AND T3.DEL_FLG =''N''
AND NVL(T2.REG_TYPE,''NA'') NOT IN
(''IWTT'',''OWTT'')
AND T1.SOL_ID =T2.SOL_ID
AND T2.entity_cre_flg = ''Y''
and t1.ITC_START_DATE=t2.bill_date
AND T1.DEL_FLG !=''Y''
and t2.bill_stat != ''Z''
AND T2.DEL_FLG !=''Y''
and T2.reg_type=''BFD''
and t2.cls_flg!=''Y''
AND T2.CLS_DATE IS NULL
And acct_ownership<>''O''
and t2.bill_crncy_code=t4.Fxd_Crncy_Code
AND T2.BILL_DATE <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
union all
SELECT distinct '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T2.PARTY_CODE) CUSTOMER_ID,
T1.BILL_ID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
case when T3.ACCT_CRNCY_CODE <>
t2.bill_crncy_code then ''MUR'' else T3.ACCT_CRNCY_CODE end TRAN_CCY,
''D'' TRAN_TYPE,
case when T3.ACCT_CRNCY_CODE <>
t2.bill_crncy_code then (T2.BILL_AMT*wash_rate) else T2.BILL_AMT end
TRAN_AMT,
T1.CONT_TRAN_ID,
T2.bill_crncy_code MIS_CURRENCY,
TO_DATE('''||G_Current_Business_Date ||''',''DD-
MON-RRRR'') VALUE_DATE,
T3.SCHM_TYPE, '''||G_Current_Business_Date ||'''
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
T2.BILL_LIAB,
t2.bill_cntry_code,

decode(t2.bill_crncy_code,''MUR'',1,round((t1.bill_liab/t2.bill_amt),4))
NOTL_CONV_RATE
FROM
FBH@FINACLEPROD T1,
FBM@FINACLEPROD T2,
GAM@FINACLEPROD T3,
( Select rtlist_date,Fxd_Crncy_Code,
NVL(decode(FXD_CRNCY_CODE,''ITL'',
var_crncy_units/1000,''MGA'', var_crncy_units/100,''JPY'',
var_crncy_units/100,''KES'', var_crncy_units/100,var_crncy_units),0)
WASH_RATE
From Rlv@Finacleprod
Where (Rtlist_Date,Fxd_Crncy_Code) In (Select
Max(Rtlist_Date),Fxd_Crncy_Code
From
Rlv@Finacleprod Where Rtlist_Date <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
Group By
Fxd_Crncy_Code)) t4
WHERE T1.BILL_ID =T2.BILL_ID
AND case when T2.BP_ACID is null then
t2.OPER_CHARGE_ACID else T2.BP_ACID end = T3.acid
AND T3.DEL_FLG =''N''
AND T1.SOL_ID =T2.SOL_ID
and t1.ITC_START_DATE=t2.bill_date
AND T2.entity_cre_flg = ''Y''
and t2.bill_stat != ''Z''
AND T1.DEL_FLG !=''Y''
AND T2.DEL_FLG !=''Y''
and t2.reg_type =''FBP''
and t2.cls_flg!=''Y''
AND T2.CLS_DATE IS NULL
And acct_ownership<>''O''
and t2.bill_crncy_code=t4.Fxd_Crncy_Code(+)
AND T2.BILL_DATE <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The PWT_FBD_DETAILS !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate PWT_FBD_DETAIL !!');

RETURN ERRONEOUS_EXIT;
END IF;
end;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getFinacleBillsEnrichStgData;

/*#######################################################################
##################################################
Name : getFinacleLoanEnrichStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [CONTRACTS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getFinacleLoanEnrichStgData(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;
BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinacleLoanEnrichStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'ENRICHMENT_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop ENRICHMENT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG


population......');
BEGIN

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(GAM1.CUST_ID) CUSTOMER_ID,
GAM1.FORACID CONTRACT_ID,
GAM2.FORACID OFFICE_ACCOUNT,
/*SUBSTR(GAM2.FORACID,8,5) VISION_GL,*/
GAM2.GL_SUB_HEAD_CODE VISION_GL,
GAM1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
GAM1.ACCT_CRNCY_CODE TRAN_CCY,
CASE WHEN LTD.INTEREST_AMT >=0 THEN ''C'' ELSE
''D'' END TRAN_TYPE,
LTD.INTEREST_AMT TRAN_AMT,
/*LTD.TRAN_DATE ,
NVL(LTD.VALUE_DATE,LTD.TRAN_DATE) VALUE_DATE
,*/ '||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NVL(VALUE_DATE,'||
''''||G_Current_Business_Date ||''''||')
VALUE_DATE,
''LAA'' SCHM_TYPE, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM LTD' || V_DB_Link || ' LTD ,
'||G_GAM_Table||'' || V_DB_Link || ' GAM1,
'||G_GAM_Table||'' || V_DB_Link || ' GAM2,
GSP' || V_DB_Link || ' GSP,
CEM' || V_DB_Link || ' CEM
WHERE
LTD.ACID = GAM1.ACID
AND GAM1.SCHM_CODE = GSP.SCHM_CODE
AND GAM2.BACID = GSP.INT_PANDL_BACID_DR
AND GAM2.ACCT_CRNCY_CODE = GAM1.ACCT_CRNCY_CODE
AND GAM2.SOL_ID = GAM1.SOL_ID
AND GAM1.CUST_ID = CEM.CUST_ID(+)
AND LTD.INTEREST_AMT != 0
AND LTD.TRAN_DATE =
'||''''||G_Current_Business_Date||'''');

IF ( G_LastBusinessDateRun = '01-JAN-1900') THEN


EXECUTE IMMEDIATE ('INSERT INTO ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(GAM1.CUST_ID) CUSTOMER_ID,
GAM1.FORACID CONTRACT_ID,
GAM2.FORACID OFFICE_ACCOUNT,
/*SUBSTR(GAM2.FORACID,8,5) VISION_GL,*/
GAM2.GL_SUB_HEAD_CODE VISION_GL,
GAM1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
GAM1.ACCT_CRNCY_CODE TRAN_CCY,
CASE WHEN LTD.INTEREST_AMT >=0 THEN ''C'' ELSE
''D'' END TRAN_TYPE,
LTD.INTEREST_AMT TRAN_AMT,
/*LTD.TRAN_DATE ,
NVL(LTD.VALUE_DATE,LTD.TRAN_DATE) VALUE_DATE
,*/ '||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NVL(VALUE_DATE,'||
''''||G_Current_Business_Date ||''''||')
VALUE_DATE,
''LAA'' SCHM_TYPE, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM LTD' || V_DB_Link || ' LTD ,
GAM' || V_DB_Link || ' GAM1,
GAM' || V_DB_Link || ' GAM2,
GSP' || V_DB_Link || ' GSP,
CEM' || V_DB_Link || ' CEM
WHERE
LTD.ACID = GAM1.ACID
AND GAM1.SCHM_CODE = GSP.SCHM_CODE
AND GAM2.BACID = GSP.INT_PANDL_BACID_DR
AND GAM2.ACCT_CRNCY_CODE = GAM1.ACCT_CRNCY_CODE
AND GAM2.SOL_ID = GAM1.SOL_ID
AND GAM1.CUST_ID = CEM.CUST_ID(+)
AND LTD.INTEREST_AMT != 0
AND 1=2
AND LTD.TRAN_DATE =
'||''''||G_Current_Business_Date||'''');
ELSIF (G_Manual_Flag = 'N') THEN
EXECUTE IMMEDIATE ('INSERT INTO ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(GAM1.CUST_ID) CUSTOMER_ID,
GAM1.FORACID CONTRACT_ID,
GAM2.FORACID OFFICE_ACCOUNT,
/*SUBSTR(GAM2.FORACID,8,5) VISION_GL,*/
GAM2.GL_SUB_HEAD_CODE VISION_GL,
GAM1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
GAM1.ACCT_CRNCY_CODE TRAN_CCY,
CASE WHEN LTD.INTEREST_AMT >=0 THEN ''C'' ELSE
''D'' END TRAN_TYPE,
LTD.INTEREST_AMT TRAN_AMT,
/*LTD.TRAN_DATE ,
NVL(LTD.VALUE_DATE,LTD.TRAN_DATE) VALUE_DATE
,*/ '||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NVL(VALUE_DATE,'||
''''||G_Current_Business_Date ||''''||')
VALUE_DATE,
''LAA'' SCHM_TYPE, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM LTD' || V_DB_Link || ' LTD ,
'||G_GAM_Table||'' || V_DB_Link || ' GAM1,
'||G_GAM_Table||'' || V_DB_Link || ' GAM2,
GSP' || V_DB_Link || ' GSP,
CEM' || V_DB_Link || ' CEM
WHERE
LTD.ACID = GAM1.ACID
AND GAM1.SCHM_CODE = GSP.SCHM_CODE
AND GAM2.BACID = GSP.INT_PANDL_BACID_DR
AND GAM2.ACCT_CRNCY_CODE = GAM1.ACCT_CRNCY_CODE
AND GAM2.SOL_ID = GAM1.SOL_ID
AND GAM1.CUST_ID = CEM.CUST_ID(+)
AND LTD.INTEREST_AMT != 0
AND LTD.TRAN_DATE >
'||''''||G_LastBusinessDateRun||'''');
ELSIF (G_Manual_Flag = 'Y') THEN
EXECUTE IMMEDIATE ('INSERT INTO ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
TRAN_AMT,TRAN_DATE,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(GAM1.CUST_ID) CUSTOMER_ID,
GAM1.FORACID CONTRACT_ID,
GAM2.FORACID OFFICE_ACCOUNT,
/*SUBSTR(GAM2.FORACID,8,5) VISION_GL,*/
GAM2.GL_SUB_HEAD_CODE VISION_GL,
GAM1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
GAM1.ACCT_CRNCY_CODE TRAN_CCY,
CASE WHEN LTD.INTEREST_AMT >=0 THEN ''C'' ELSE
''D'' END TRAN_TYPE,
LTD.INTEREST_AMT TRAN_AMT,
/*LTD.TRAN_DATE ,
NVL(LTD.VALUE_DATE,LTD.TRAN_DATE) VALUE_DATE
,*/ '||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
NVL(VALUE_DATE,'||
''''||G_Current_Business_Date ||''''||')
VALUE_DATE,
''LAA'' SCHM_TYPE, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM LTD' || V_DB_Link || ' LTD ,
'||G_GAM_Table||'' || V_DB_Link || ' GAM1,
'||G_GAM_Table||'' || V_DB_Link || ' GAM2,
GSP' || V_DB_Link || ' GSP,
CEM' || V_DB_Link || ' CEM
WHERE
LTD.ACID = GAM1.ACID
AND GAM1.SCHM_CODE = GSP.SCHM_CODE
AND GAM2.BACID = GSP.INT_PANDL_BACID_DR
AND GAM2.ACCT_CRNCY_CODE = GAM1.ACCT_CRNCY_CODE
AND GAM2.SOL_ID = GAM1.SOL_ID
AND GAM1.CUST_ID = CEM.CUST_ID(+)
AND LTD.INTEREST_AMT != 0
AND LTD.TRAN_DATE =
'||''''||G_Current_Business_Date||'''');
END IF;

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables LTD/GAM/GSP Does
not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate ENRICHMENT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getFinacleLoanEnrichStgData;
/*#######################################################################
##################################################
Name : getCOTEnrichStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [ENRICHMENT].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getCOTEnrichStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getCOTEnrichStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

IF ( G_Current_MonthEnd_Date = G_Last_MonthEnd_Date )
THEN
writeLogInfo('MONTHEND DATE Equal to LAST MONTHEND DATE
==> FYI');
writeLogInfo('Procedure not recreate the staging
table...');
RETURN (ERRONEOUS_EXIT);
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'ENRICHMENT_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop ENRICHMENT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
CALC_TRAN_DATE,TURNOVER_AMT,
TRAN_AMT,TRAN_DATE,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(T2.CUST_ID ) CUSTOMER_ID,
T2.FORACID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
T2.ACCT_CRNCY_CODE TRAN_CCY,

DECODE(T1.COT_CHARGE_AMT,ABS(T1.COT_CHARGE_AMT),''C'',''D'') TRAN_TYPE,
T1.CALC_TRAN_DATE,
T1.CALC_PERIOD_COT_PRODUCT TURNOVER_AMT,
T1.COT_CHARGE_AMT TRAN_AMT, '||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE, '||
''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
T2.SCHM_TYPE, ' ||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
CCOTS' || V_DB_Link || ' T1,
'||G_GAM_Table||'' || V_DB_Link || ' T2,
'||G_GAM_Table||'' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' CEM
WHERE
T1.ACID = T2.ACID
AND T1.CALC_TRAN_DATE >
'||''''||G_Last_MonthEnd_Date||'''' || '
AND T1.CALC_TRAN_DATE <=
'||''''||G_Current_MonthEnd_Date||'''' || '
AND T3.BACID = ''COMMCOT''
AND T3.ACCT_CRNCY_CODE = T2.ACCT_CRNCY_CODE
AND T2.CUST_ID = CEM.CUST_ID(+)
AND T3.SOL_ID = T2.SOL_ID ' );

IF ( G_LastBusinessDateRun = '01-JAN-1900' OR G_MonthEnd_Flag


= 'N' ) THEN
EXECUTE IMMEDIATE ('INSERT INTO ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
CALC_TRAN_DATE,TURNOVER_AMT,
TRAN_AMT,TRAN_DATE,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T2.CUST_ID CUSTOMER_ID,
T2.FORACID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
T2.ACCT_CRNCY_CODE TRAN_CCY,

DECODE(T1.COT_CHARGE_AMT,ABS(T1.COT_CHARGE_AMT),''C'',''D'') TRAN_TYPE,
T1.CALC_TRAN_DATE,
T1.CALC_PERIOD_COT_PRODUCT TURNOVER_AMT,
T1.COT_CHARGE_AMT TRAN_AMT, '||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE, '||
''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
T2.SCHM_TYPE, ' ||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
CCOTS' || V_DB_Link || ' T1,
'||G_GAM_Table||'' || V_DB_Link || ' T2,
'||G_GAM_Table||'' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' CEM
WHERE
T1.ACID = T2.ACID
AND T1.CALC_TRAN_DATE =
'||''''||G_Current_Business_Date||'''' || '
AND T1.CALC_TRAN_DATE =
'||''''||G_Current_Business_Date||'''' || '
AND T3.BACID = ''COMMCOT''
AND T3.ACCT_CRNCY_CODE = T2.ACCT_CRNCY_CODE
AND T3.SOL_ID = T2.SOL_ID
AND T2.CUST_ID = CEM.CUST_ID(+)
AND T1.COT_CHARGE_AMT != 0 AND 1=2 ' );
ELSE
EXECUTE IMMEDIATE ('INSERT INTO ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,
TRAN_CCY,TRAN_TYPE,
CALC_TRAN_DATE,TURNOVER_AMT,
TRAN_AMT,TRAN_DATE,
VALUE_DATE,SCHM_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(T2.CUST_ID) CUSTOMER_ID,
T2.FORACID CONTRACT_ID,
T3.FORACID OFFICE_ACCOUNT,
T3.GL_SUB_HEAD_CODE VISION_GL,
T3.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
NVL(CEM.FREE_CODE_2,''NA'') PROFIT_CENTER,
T2.ACCT_CRNCY_CODE TRAN_CCY,

DECODE(T1.COT_CHARGE_AMT,ABS(T1.COT_CHARGE_AMT),''C'',''D'') TRAN_TYPE,
T1.CALC_TRAN_DATE,
T1.CALC_PERIOD_COT_PRODUCT TURNOVER_AMT,
T1.COT_CHARGE_AMT TRAN_AMT, '||
''''||G_Current_Business_Date ||''''||'
TRAN_DATE, '||
''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
T2.SCHM_TYPE, ' ||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
CCOTS' || V_DB_Link || ' T1,
'||G_GAM_Table||'' || V_DB_Link || ' T2,
'||G_GAM_Table||'' || V_DB_Link || ' T3,
CEM' || V_DB_Link || ' CEM
WHERE
T1.ACID = T2.ACID
AND T1.CALC_TRAN_DATE >
'||''''||G_Last_MonthEnd_Date||'''' || '
AND T1.CALC_TRAN_DATE <=
'||''''||G_Current_MonthEnd_Date||'''' || '
AND T3.BACID = ''COMMCOT''
AND T3.ACCT_CRNCY_CODE = T2.ACCT_CRNCY_CODE
AND T2.CUST_ID = CEM.CUST_ID(+)
AND T3.SOL_ID = T2.SOL_ID ' );
END IF;

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables CCOTS/GAM Does
not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate ENRICHMENT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');
COMMIT;

RETURN SUCCESSFUL_EXIT;

END getCOTEnrichStgData;

/*#######################################################################
##################################################
Name : getFinacleLrsStgData
Description : Procedure to upload daily Finone data
to Vision staging table and from staging
table to the main target table [CONTRACT_LRS].
Author : Kanakarajan .G
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getFinacleLrsStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;
IF (P_DBLink IS NOT NULL) THEN
BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinacleLrsStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'CONTRACT_LRS_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CONTRACT_LRS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CONTRACT_LRS_FEED_STG


population......');

BEGIN

EXECUTE IMMEDIATE ('INSERT INTO CONTRACT_LRS_FEED_STG


(
COUNTRY,LE_BOOK,
FORACID,ACID,
ACCT_OPN_DATE,ACCT_CLS_DATE,
EI_PERD_START_DATE,EI_PERD_END_DATE,
RESHDL_DATE,SHDL_NUM,
SHDL_TYPE,FLOW_START_DATE,
FLOW_ID,FLOW_AMT,
LR_FREQ_TYPE,NUM_OF_FLOWS,
DEL_FLG,LRS_DEL_FLG,
LR_INT_FREQ_TYPE,ENTITY_CRE_FLG,
CURRENT_INT_REC_FLG,LR_FREQ_START_DD,
LR_INT_FREQ_START_DD,LCHG_TIME,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T1.FORACID,
T1.ACID,
T1.ACCT_OPN_DATE,
T1.ACCT_CLS_DATE,
T2.EI_PERD_START_DATE,
T2.EI_PERD_END_DATE,
T3.RESHDL_DATE,
T3.SHDL_NUM,
T3.SHDL_TYPE,
T4.FLOW_START_DATE,
T4.FLOW_ID,
T4.FLOW_AMT,
T4.LR_FREQ_TYPE,
T4.NUM_OF_FLOWS,
T3.DEL_FLG,
T4.DEL_FLG LRS_DEL_FLG,
T4.LR_INT_FREQ_TYPE,
T3.ENTITY_CRE_FLG,
T4.CURRENT_INT_REC_FLG,
T4.LR_FREQ_START_DD,
T4.LR_INT_FREQ_START_DD,
T4.LCHG_TIME,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
GAM' || V_DB_Link || ' T1,
LAM' || V_DB_Link || ' T2,
LRH' || V_DB_Link || ' T3,
LRS' || V_DB_Link || ' T4
WHERE T1.ACID = T2.ACID
AND T1.ACID = T3.ACID
AND T3.ACID = T4.ACID
AND T3.SHDL_NUM = T4.SHDL_NUM
AND T3.SHDL_TYPE != ''D''
AND T1.ENTITY_CRE_FLG = ''Y''
AND T1.SCHM_TYPE = ''LAA''
AND (T3.LCHG_TIME > ' || '''' ||
G_LastBusinessDateRun|| '''
OR T4.LCHG_TIME > ' || '''' ||
G_LastBusinessDateRun|| ''' )' );

writeLogInfo('INSERT INTO CONTRACT_LRS_FEED_STG (


COUNTRY,LE_BOOK,
FORACID,ACID,
ACCT_OPN_DATE,ACCT_CLS_DATE,
EI_PERD_START_DATE,EI_PERD_END_DATE,
RESHDL_DATE,SHDL_NUM,
SHDL_TYPE,FLOW_START_DATE,
FLOW_ID,FLOW_AMT,
LR_FREQ_TYPE,NUM_OF_FLOWS,
DEL_FLG,LRS_DEL_FLG,
LR_INT_FREQ_TYPE,ENTITY_CRE_FLG,
CURRENT_INT_REC_FLG,LR_FREQ_START_DD,
LR_INT_FREQ_START_DD,LCHG_TIME,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T1.FORACID,
T1.ACID,
T1.ACCT_OPN_DATE,
T1.ACCT_CLS_DATE,
T2.EI_PERD_START_DATE,
T2.EI_PERD_END_DATE,
T3.RESHDL_DATE,
T3.SHDL_NUM,
T3.SHDL_TYPE,
T4.FLOW_START_DATE,
T4.FLOW_ID,
T4.FLOW_AMT,
T4.LR_FREQ_TYPE,
T4.NUM_OF_FLOWS,
T3.DEL_FLG,
T4.DEL_FLG LRS_DEL_FLG,
T4.LR_INT_FREQ_TYPE,
T3.ENTITY_CRE_FLG,
T4.CURRENT_INT_REC_FLG,
T4.LR_FREQ_START_DD,
T4.LR_INT_FREQ_START_DD,
T4.LCHG_TIME,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
GAM' || V_DB_Link || ' T1,
LAM' || V_DB_Link || ' T2,
LRH' || V_DB_Link || ' T3,
LRS' || V_DB_Link || ' T4
WHERE T1.ACID = T2.ACID
AND T1.ACID = T3.ACID
AND T3.ACID = T4.ACID
AND T3.SHDL_NUM = T4.SHDL_NUM
AND T3.SHDL_TYPE != ''D''
AND T1.ENTITY_CRE_FLG = ''Y''
AND T1.SCHM_TYPE = ''LAA''
AND (T3.LCHG_TIME > ' || '''' ||
G_LastBusinessDateRun|| '''
OR T4.LCHG_TIME > ' || '''' ||
G_LastBusinessDateRun|| ''' )' );

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables LRS/LRH/GAM Does
not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACT_LRS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getFinacleLrsStgData;

/*#######################################################################
##################################################
Name : getFinacleContPymtStgData
Description : Procedure to upload daily Finone data
to Vision staging table and from staging
table to the main target table
[CONTRACT_SCHEDULES].
Author : Kanakarajan .G / Inna Reddy
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getFinacleContPymtStgData(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinacleContPymtStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'CONTRACT_PAYMENTS_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CONTRACT_PAYMENTS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table


CONTRACT_SCHEDULE_FEED_STG population......');

BEGIN

writeLogInfo('INSERT INTO CONTRACT_SCHEDULE_FEED_STG


(
COUNTRY ,LE_BOOK
,
CONTRACT_ID ,SCHEDULE_DATE
,
PAYMENT_DATE
,REPAYMENT_FREQUENCY ,
EMI_AMOUNT ,DUE_AMOUNT
,
PRINCIPAL_AMOUNT_PAID,ADD_INT_PAID
,
INT_AMOUNT_PAID ,FEED_DATE
,
PRODUCT ,RUN_STATUS
,
DATE_LAST_MODIFIED ,DATE_CREATION
)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
GAM.FORACID CONTRACT_ID,
LDT.DMD_EFF_DATE SCHEDULE_DATE,
NVL(LDT.LAST_ADJ_DATE,LDT.DMD_EFF_DATE)
PAYMENT_DATE,

NVL(NVL(LDT.LD_FREQ_TYPE,LDT1.LD_FREQ_TYPE),''NA'') REPAYMENT_FREQUENCY,
sum(LDT.EI_AMT) EMI_AMOUNT,
sum(LDT.DMD_AMT ) DUE_AMOUNT,
SUM(CASE WHEN LDT.DMD_FLOW_ID = ''PRDEM'' THEN
LDT.TOT_ADJ_AMT ELSE 0 END) PRINCIPAL_AMOUNT_PAID,
SUM(CASE WHEN LDT.DMD_FLOW_ID = ''AIDEM'' THEN
LDT.TOT_ADJ_AMT ELSE 0 END) ADD_INT_PAID,
SUM(CASE WHEN LDT.DMD_FLOW_ID = ''INDEM'' THEN
LDT.TOT_ADJ_AMT ELSE 0 END) INT_AMOUNT_PAID, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
LDT' || V_DB_Link || ' LDT,
GAM' || V_DB_Link || ' GAM,
(select T1.acid ,T1.LD_FREQ_TYPE from LDT' ||
V_DB_Link || ' T1 WHERE DMD_FLOW_ID =''PRDEM'' AND T1.LD_FREQ_TYPE IS NOT
NULL
AND DMD_EFF_DATE IN (SELECT MIN(DMD_EFF_DATE)
FROM LDT' || V_DB_Link || ' T2 WHERE T2.ACID = T1.ACID AND
T2.LD_FREQ_TYPE IS NOT NULL)) LDT1
WHERE LDT.ACID = GAM.ACID
AND LDT.ACID = LDT1.ACID (+)
AND LDT.DMD_FLOW_ID IN (''PRDEM'',''INDEM'',''AIDEM'')
AND GAM.ENTITY_CRE_FLG = ''Y''
AND LDT.DEL_FLG !=''Y''
AND GAM.SCHM_TYPE = ''LAA''
AND LDT.LCHG_TIME > '''||G_LastBusinessDateRun||'''
GROUP BY
GAM.FORACID,
LDT.DMD_EFF_DATE,
LDT.LAST_ADJ_DATE ,
NVL(NVL(LDT.LD_FREQ_TYPE,LDT1.LD_FREQ_TYPE),''NA'')');

/* EXECUTE IMMEDIATE ('INSERT INTO


CONTRACT_PAYMENTS_FEED_STG (
COUNTRY,LE_BOOK,
CONTRACT_ID,SCHEDULE_DATE,
PAYMENT_DATE,PRINCIPAL_AMOUNT_PAID,
INT_AMOUNT_PAID,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T2.FORACID CONTRACT_ID,
T1.DMD_EFF_DATE SCHEDULE_DATE,
T1.LAST_ADJ_DATE PAYMENT_DATE,
SUM(CASE WHEN T1.DMD_FLOW_ID = ''PRDEM'' THEN
T1.TOT_ADJ_AMT ELSE 0 END) PRINCIPAL_AMOUNT_PAID,
SUM(CASE WHEN T1.DMD_FLOW_ID = ''INDEM'' THEN
T1.TOT_ADJ_AMT ELSE 0 END) INT_AMOUNT_PAID, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
LDT' || V_DB_Link || ' T1,
GAM' || V_DB_Link || ' T2
WHERE T1.ACID = T2.ACID
AND (T1.ACID,T1.DMD_EFF_DATE) IN (
SELECT DISTINCT ACID, DMD_EFF_DATE
FROM LDT' || V_DB_Link || ' WHERE ACID > '' ''
AND LCHG_TIME >
'||''''||G_LastBusinessDateRun||''')
AND T1.DMD_FLOW_ID IN (''PRDEM'',''INDEM'')
AND T2.ENTITY_CRE_FLG = ''Y''
AND T2.SCHM_TYPE = ''LAA''
GROUP BY
T2.FORACID,
T1.DMD_EFF_DATE,
T1.LAST_ADJ_DATE ');
*/

EXECUTE IMMEDIATE ('INSERT INTO


CONTRACT_SCHEDULE_FEED_STG (
COUNTRY ,LE_BOOK
,
CONTRACT_ID ,SCHEDULE_DATE
,
PAYMENT_DATE
,REPAYMENT_FREQUENCY ,
EMI_AMOUNT ,DUE_AMOUNT
,
PRINCIPAL_AMOUNT_PAID,ADD_INT_PAID
,
INT_AMOUNT_PAID ,FEED_DATE
,
PRODUCT ,RUN_STATUS
,
DATE_LAST_MODIFIED ,DATE_CREATION
)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
GAM.FORACID CONTRACT_ID,
LDT.DMD_EFF_DATE SCHEDULE_DATE,
NVL(LDT.LAST_ADJ_DATE,LDT.DMD_EFF_DATE)
PAYMENT_DATE,

NVL(NVL(LDT.LD_FREQ_TYPE,LDT1.LD_FREQ_TYPE),''NA'') REPAYMENT_FREQUENCY,
sum(LDT.EI_AMT) EMI_AMOUNT,
sum(LDT.DMD_AMT ) DUE_AMOUNT,
SUM(CASE WHEN LDT.DMD_FLOW_ID = ''PRDEM'' THEN
LDT.TOT_ADJ_AMT ELSE 0 END) PRINCIPAL_AMOUNT_PAID,
SUM(CASE WHEN LDT.DMD_FLOW_ID = ''AIDEM'' THEN
LDT.TOT_ADJ_AMT ELSE 0 END) ADD_INT_PAID,
SUM(CASE WHEN LDT.DMD_FLOW_ID = ''INDEM'' THEN
LDT.TOT_ADJ_AMT ELSE 0 END) INT_AMOUNT_PAID, '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
LDT' || V_DB_Link || ' LDT,
GAM' || V_DB_Link || ' GAM,
(select T1.acid ,T1.LD_FREQ_TYPE from LDT' ||
V_DB_Link || ' T1 WHERE DMD_FLOW_ID =''PRDEM'' AND T1.LD_FREQ_TYPE IS NOT
NULL
AND DMD_EFF_DATE IN (SELECT MIN(DMD_EFF_DATE)
FROM LDT' || V_DB_Link || ' T2 WHERE T2.ACID = T1.ACID AND
T2.LD_FREQ_TYPE IS NOT NULL)) LDT1
WHERE LDT.ACID = GAM.ACID
AND LDT.ACID = LDT1.ACID (+)
AND LDT.DMD_FLOW_ID IN (''PRDEM'',''INDEM'',''AIDEM'')
AND GAM.ENTITY_CRE_FLG = ''Y''
AND LDT.DEL_FLG !=''Y''
AND GAM.SCHM_TYPE = ''LAA''
AND LDT.LCHG_TIME > '''||G_LastBusinessDateRun||'''
GROUP BY
GAM.FORACID,
LDT.DMD_EFF_DATE,
LDT.LAST_ADJ_DATE ,
NVL(NVL(LDT.LD_FREQ_TYPE,LDT1.LD_FREQ_TYPE),''NA'')');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables LDT/GAM Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACT_PAYMENTS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;
END getFinacleContPymtStgData;

/*#######################################################################
##################################################
Name : getCOTStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table For COT
Enrichments
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/
FUNCTION getCOTStgData(P_Country IN VARCHAR2, P_Le_Book IN
VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getCOTStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'COT_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop COT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/
writeLogInfo('Time of current execution obtained
from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table COT_FEED_STG


population......');

BEGIN
IF ( G_LastBusinessDateRun = '01-JAN-1900') THEN
EXECUTE IMMEDIATE ('INSERT INTO COT_FEED_STG (
COUNTRY,LE_BOOK,
CONTRACT_ID,OFFICE_ACCOUNT,
CUSTOMER_ID,VISION_OUC,
TRAN_AMT,COT_SLAB_1,
COT_RATE_1,COT_SLAB_2,
COT_RATE_2,COT_SLAB_3,
COT_RATE_3,COT_SLAB_4,
COT_RATE_4,COT_SLAB_5,
COT_RATE_5,COT_SLAB_6,
COT_RATE_6,COT_SLAB_7,
COT_RATE_7,COT_SLAB_8,
COT_RATE_8,COT_SLAB_9,
COT_RATE_9,COT_SLAB_10,
COT_RATE_10,RUN_STATUS,
PRODUCT,FEED_DATE)
SELECT ' ||
''''||P_Country||'''' ||' COUNTRY, ' ||
''''||P_Le_Book||'''' ||' LE_BOOK,
T3.FORACID CONTRACT_ID,
''0'' OFFICE_ACCOUNT,
TRIM(T3.CUST_ID)CUSTOMER_ID,
T3.SOL_ID VISION_OUC,
COT_PRODUCT TRAN_AMT,
COT_SLAB_1 COT_SLAB_1,
COT_RATE_1 COT_RATE_1,
COT_SLAB_2 COT_SLAB_2,
COT_RATE_2 COT_RATE_2,
COT_SLAB_3 COT_SLAB_3,
COT_RATE_3 COT_RATE_3,
COT_SLAB_4 COT_SLAB_4,
COT_RATE_4 COT_RATE_4,
COT_SLAB_5 COT_SLAB_5,
COT_RATE_5 COT_RATE_5,
COT_SLAB_6 COT_SLAB_6,
COT_RATE_6 COT_RATE_6,
COT_SLAB_7 COT_SLAB_7,
COT_RATE_7 COT_RATE_7,
COT_SLAB_8 COT_SLAB_8,
COT_RATE_8 COT_RATE_8,
COT_SLAB_9 COT_SLAB_9,
COT_RATE_9 COT_RATE_9,
COT_SLAB_10 COT_SLAB_10,
COT_RATE_10 COT_RATE_10,
''N'' RUN_STATUS,
''COT'' PRODUCT,' ||
''''|| G_Current_Business_Date || '''' || '
FEED_DATE
FROM CCOTT' || V_DB_Link || ' T1,CCOTM' || V_DB_Link
|| ' T2,GAM' || V_DB_Link || ' T3
WHERE T1.ACID =T2.ACID
AND T1.ACID =T3.ACID
AND T1.ACID >'' ''
AND ENTITY_CRE_FLG = ''Y''
AND DEL_FLG != ''Y''
AND 1=2
AND COT_TRAN_DATE
='||''''||G_Current_Business_Date||'''');
ELSIF (G_Manual_Flag = 'N') THEN
EXECUTE IMMEDIATE ('INSERT INTO COT_FEED_STG (
COUNTRY,LE_BOOK,
CONTRACT_ID,OFFICE_ACCOUNT,
CUSTOMER_ID,VISION_OUC,
TRAN_AMT,COT_SLAB_1,
COT_RATE_1,COT_SLAB_2,
COT_RATE_2,COT_SLAB_3,
COT_RATE_3,COT_SLAB_4,
COT_RATE_4,COT_SLAB_5,
COT_RATE_5,COT_SLAB_6,
COT_RATE_6,COT_SLAB_7,
COT_RATE_7,COT_SLAB_8,
COT_RATE_8,COT_SLAB_9,
COT_RATE_9,COT_SLAB_10,
COT_RATE_10,RUN_STATUS,
PRODUCT,FEED_DATE)
SELECT ' ||
''''||P_Country||'''' ||' COUNTRY, ' ||
''''||P_Le_Book||'''' ||' LE_BOOK,
T3.FORACID CONTRACT_ID,
''0'' OFFICE_ACCOUNT,
TRIM(T3.CUST_ID)CUSTOMER_ID,
T3.SOL_ID VISION_OUC,
COT_PRODUCT TRAN_AMT,
COT_SLAB_1 COT_SLAB_1,
COT_RATE_1 COT_RATE_1,
COT_SLAB_2 COT_SLAB_2,
COT_RATE_2 COT_RATE_2,
COT_SLAB_3 COT_SLAB_3,
COT_RATE_3 COT_RATE_3,
COT_SLAB_4 COT_SLAB_4,
COT_RATE_4 COT_RATE_4,
COT_SLAB_5 COT_SLAB_5,
COT_RATE_5 COT_RATE_5,
COT_SLAB_6 COT_SLAB_6,
COT_RATE_6 COT_RATE_6,
COT_SLAB_7 COT_SLAB_7,
COT_RATE_7 COT_RATE_7,
COT_SLAB_8 COT_SLAB_8,
COT_RATE_8 COT_RATE_8,
COT_SLAB_9 COT_SLAB_9,
COT_RATE_9 COT_RATE_9,
COT_SLAB_10 COT_SLAB_10,
COT_RATE_10 COT_RATE_10,
''N'' RUN_STATUS,
''COT'' PRODUCT,' ||
''''|| G_Current_Business_Date || '''' || '
FEED_DATE
FROM CCOTT' || V_DB_Link || ' T1,CCOTM' || V_DB_Link
|| ' T2,'||G_GAM_Table||'' || V_DB_Link || ' T3
WHERE T1.ACID =T2.ACID
AND T1.ACID =T3.ACID
AND T1.ACID >'' ''
AND ENTITY_CRE_FLG = ''Y''
AND DEL_FLG != ''Y''
AND COT_TRAN_DATE
>'||''''||G_LastBusinessDateRun||'''');
ELSIF (G_Manual_Flag = 'Y') THEN
EXECUTE IMMEDIATE ('INSERT INTO COT_FEED_STG (
COUNTRY,LE_BOOK,
CONTRACT_ID,OFFICE_ACCOUNT,
CUSTOMER_ID,VISION_OUC,
TRAN_AMT,COT_SLAB_1,
COT_RATE_1,COT_SLAB_2,
COT_RATE_2,COT_SLAB_3,
COT_RATE_3,COT_SLAB_4,
COT_RATE_4,COT_SLAB_5,
COT_RATE_5,COT_SLAB_6,
COT_RATE_6,COT_SLAB_7,
COT_RATE_7,COT_SLAB_8,
COT_RATE_8,COT_SLAB_9,
COT_RATE_9,COT_SLAB_10,
COT_RATE_10,RUN_STATUS,
PRODUCT,FEED_DATE)
SELECT ' ||
''''||P_Country||'''' ||' COUNTRY, ' ||
''''||P_Le_Book||'''' ||' LE_BOOK,
T3.FORACID CONTRACT_ID,
''0'' OFFICE_ACCOUNT,
TRIM(T3.CUST_ID)CUSTOMER_ID,
T3.SOL_ID VISION_OUC,
COT_PRODUCT TRAN_AMT,
COT_SLAB_1 COT_SLAB_1,
COT_RATE_1 COT_RATE_1,
COT_SLAB_2 COT_SLAB_2,
COT_RATE_2 COT_RATE_2,
COT_SLAB_3 COT_SLAB_3,
COT_RATE_3 COT_RATE_3,
COT_SLAB_4 COT_SLAB_4,
COT_RATE_4 COT_RATE_4,
COT_SLAB_5 COT_SLAB_5,
COT_RATE_5 COT_RATE_5,
COT_SLAB_6 COT_SLAB_6,
COT_RATE_6 COT_RATE_6,
COT_SLAB_7 COT_SLAB_7,
COT_RATE_7 COT_RATE_7,
COT_SLAB_8 COT_SLAB_8,
COT_RATE_8 COT_RATE_8,
COT_SLAB_9 COT_SLAB_9,
COT_RATE_9 COT_RATE_9,
COT_SLAB_10 COT_SLAB_10,
COT_RATE_10 COT_RATE_10,
''N'' RUN_STATUS,
''COT'' PRODUCT,' ||
''''|| G_Current_Business_Date || '''' || '
FEED_DATE
FROM CCOTT' || V_DB_Link || ' T1,CCOTM' || V_DB_Link
|| ' T2,'||G_GAM_Table||'' || V_DB_Link || ' T3
WHERE T1.ACID =T2.ACID
AND T1.ACID =T3.ACID
AND T1.ACID >'' ''
AND ENTITY_CRE_FLG = ''Y''
AND DEL_FLG != ''Y''
AND COT_TRAN_DATE
='||''''||G_Current_Business_Date||'''');
END IF;

writeLogInfo('INSERT INTO COT_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,OFFICE_ACCOUNT,
CUSTOMER_ID,VISION_OUC,
TRAN_AMT,COT_SLAB_1,
COT_RATE_1,COT_SLAB_2,
COT_RATE_2,COT_SLAB_3,
COT_RATE_3,COT_SLAB_4,
COT_RATE_4,COT_SLAB_5,
COT_RATE_5,COT_SLAB_6,
COT_RATE_6,COT_SLAB_7,
COT_RATE_7,COT_SLAB_8,
COT_RATE_8,COT_SLAB_9,
COT_RATE_9,COT_SLAB_10,
COT_RATE_10,RUN_STATUS,
PRODUCT,FEED_DATE)
SELECT ' ||
''''||P_Country||'''' ||' COUNTRY, ' ||
''''||P_Le_Book||'''' ||' LE_BOOK,
T3.FORACID CONTRACT_ID,
''0'' OFFICE_ACCOUNT,
TRIM(T3.CUST_ID)CUSTOMER_ID,
T3.SOL_ID VISION_OUC,
COT_PRODUCT TRAN_AMT,
COT_SLAB_1 COT_SLAB_1,
COT_RATE_1 COT_RATE_1,
COT_SLAB_2 COT_SLAB_2,
COT_RATE_2 COT_RATE_2,
COT_SLAB_3 COT_SLAB_3,
COT_RATE_3 COT_RATE_3,
COT_SLAB_4 COT_SLAB_4,
COT_RATE_4 COT_RATE_4,
COT_SLAB_5 COT_SLAB_5,
COT_RATE_5 COT_RATE_5,
COT_SLAB_6 COT_SLAB_6,
COT_RATE_6 COT_RATE_6,
COT_SLAB_7 COT_SLAB_7,
COT_RATE_7 COT_RATE_7,
COT_SLAB_8 COT_SLAB_8,
COT_RATE_8 COT_RATE_8,
COT_SLAB_9 COT_SLAB_9,
COT_RATE_9 COT_RATE_9,
COT_SLAB_10 COT_SLAB_10,
COT_RATE_10 COT_RATE_10,
''N'' RUN_STATUS,
''COT'' PRODUCT,' ||
''''|| G_Current_Business_Date || '''' || '
FEED_DATE
FROM CCOTT' || V_DB_Link || ' T1,CCOTM' || V_DB_Link
|| ' T2,'||G_GAM_Table||'' || V_DB_Link || ' T3
WHERE T1.ACID =T2.ACID
AND T1.ACID =T3.ACID
AND T1.ACID >'' ''
AND ENTITY_CRE_FLG = ''Y''
AND DEL_FLG != ''Y''
AND COT_TRAN_DATE
='||''''||G_Current_Business_Date||'''');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables CCOTT/GAM Does
not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate COT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');
COMMIT;

RETURN SUCCESSFUL_EXIT;

END getCOTStgData;

/*#######################################################################
##################################################
Name : getFinnacleIntAccrStgData
Description : Procedure to upload daily Interest
Rates data to Vision staging table and from staging
table to the main target table
[INT_ACCT_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/
FUNCTION getFinnacleIntAccrStgData(P_Country IN VARCHAR2, P_Le_Book
IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;
IF (P_DBLink IS NOT NULL) THEN
BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinnacleIntAccrStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage */

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning Drop table TEMP_INT_ACCT ......');

BEGIN
EXECUTE IMMEDIATE ('DROP TABLE TEMP_INT_ACCT PURGE ');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TEMP_INT_ACCT !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
writeLogInfo('Beginning staging table TEMP_INT_ACCT Creation
......');

BEGIN
writeLogInfo('CREATE TABLE TEMP_INT_ACCT AS
SELECT * FROM IDT' || V_DB_Link || ' T1
WHERE INTEREST_TYPE =''N''
AND START_DATE <='''||
G_Current_Business_Date ||'''
AND SERIAL_NUM =(SELECT MAX(SERIAL_NUM)
FROM
IDT' || V_DB_Link || ' T2
WHERE INTEREST_TYPE =''N'' AND START_DATE
<='''|| G_Current_Business_Date ||'''
AND T1.ENTITY_ID =T2.ENTITY_ID) ');

EXECUTE IMMEDIATE ('CREATE TABLE TEMP_INT_ACCT AS


SELECT * FROM IDT' || V_DB_Link || ' T1
WHERE INTEREST_TYPE =''N''
AND START_DATE <='''||
G_Current_Business_Date ||'''
AND SERIAL_NUM =(SELECT MAX(SERIAL_NUM)
FROM
IDT' || V_DB_Link || ' T2
WHERE INTEREST_TYPE =''N'' AND START_DATE
<='''|| G_Current_Business_Date ||'''
AND T1.ENTITY_ID =T2.ENTITY_ID) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create TEMP_INT_ACCT !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN
writeLogInfo('Create INDEX TEMP_INT_ACCT_IDX ON
TEMP_INT_ACCT (INTEREST_IND,ENTITY_ID)');
EXECUTE IMMEDIATE ('Create INDEX TEMP_INT_ACCT_IDX ON
TEMP_INT_ACCT (INTEREST_IND,ENTITY_ID)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create Index on TEMP_INT_ACCT (INTEREST_IND,ENTITY_ID) !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN

writeLogInfo ('TRUNCATE TABLE INT_ACCT_FEED_STG ');

EXECUTE IMMEDIATE ('TRUNCATE TABLE INT_ACCT_FEED_STG');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table 3 has already
been dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception 3 raised
trying to Delete INT_ACCT_FEED_STG For Previous Data!!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Beginning staging table INT_ACCT_FEED_STG


population......');
BEGIN

writeLogInfo('INSERT INTO INT_ACCT_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,OFFICE_ACCOUNT,
CUSTOMER_ID,EFFECTIVE_DATE,
VISION_OUC,VISION_GL,
TRAN_CCY,TRAN_TYPE,

SCHM_TYPE,INTEREST_RATE_DR,INTEREST_RATE_CR,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
NRML_PCNT_DR,
NRML_PCNT_CR)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
FORACID CONTRACT_ID,
''0'' OFFICE_ACCOUNT,
TRIM(CUST_ID) CUSTOMER_ID,
'||''''||G_Current_Business_Date ||''''||'
EFFECTIVE_DATE,
SOL_ID VISION_OUC,
CASE WHEN
DECODE(CLR_BAL_AMT,ABS(CLR_BAL_AMT),''C'',''D'') =''D'' Then ''50000000''
else ''60000000'' end VISION_GL,
ACCT_CRNCY_CODE TRAN_CCY,
DECODE(CLR_BAL_AMT,ABS(CLR_BAL_AMT),''C'',''D'')
TRAN_TYPE,
GAM.SCHM_TYPE SCHM_TYPE,
case when GAM.SCHM_TYPE in (''TDA'') then 0 else case
when nvl(t4.interest_rate_Dr,0) <> 0 then t4.interest_rate_dr else
(SELECT CASE WHEN FULL_RATE !=0 THEN FULL_RATE ELSE DIFF_RATE END
INTEREST_RATE_DR FROM TEMP_INT_ACCT WHERE INTEREST_IND =''D'' and
ENTITY_ID = GAM.ACID) end end INTEREST_RATE_DR,
case when GAM.SCHM_TYPE in (''LAA'') then 0 else
case when nvl(t4.interest_rate_cr,0) <> 0 then t4.interest_rate_cr else
(SELECT CASE WHEN FULL_RATE !=0 THEN FULL_RATE ELSE DIFF_RATE END
INTEREST_RATE_CR FROM TEMP_INT_ACCT WHERE INTEREST_IND =''C'' and
ENTITY_ID = GAM.ACID) end end INTEREST_RATE_CR,
---
ABS(DECODE(SCHM_TYPE,''TDA'',FN_INFY_RTINT(FORACID,TO_DATE('||''''||G_Cur
rent_Business_Date ||''''||',''DD-MON-RRRR''),CLR_BAL_AMT,''D'',''N''),
--- FN_LIVE_RTINT
(FORACID,TO_DATE('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR''),CLR_BAL_AMT,''D'',''N''))) INTEREST_RATE_DR,
---
ABS(DECODE(SCHM_TYPE,''TDA'',FN_INFY_RTINT(FORACID,TO_DATE('||''''||G_Cur
rent_Business_Date ||''''||',''DD-MON-RRRR''),CLR_BAL_AMT,''C'',''N''),
--- FN_LIVE_RTINT
(FORACID,TO_DATE('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR''),CLR_BAL_AMT,''C'',''N''))) INTEREST_RATE_CR,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||'
PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
NRML_PCNT_DR,
NRML_PCNT_CR
FROM
GAM' || V_DB_Link || ' GAM, TEMP_RATES t4,
(SELECT ENTITY_ID
,NRML_PCNT_CR,NRML_PCNT_DR FROM ITC' || V_DB_Link || ' T1
WHERE ENTITY_TYPE =''ACCNT'' AND
INT_TBL_CODE_SRL_NUM =(SELECT MAX(INT_TBL_CODE_SRL_NUM) FROM ITC' ||
V_DB_Link || ' T2
WHERE T1.ENTITY_ID =T2.ENTITY_ID AND ENTITY_TYPE
=''ACCNT'')
And (NRML_PCNT_CR !=0 or NRML_PCNT_DR !=0)) T2
WHERE GAM.Acid = T2.ENTITY_ID(+)
and GAM.foracid = t4.account_no(+)
AND GAM.SCHM_TYPE
IN(''LAA'',''SBA'',''CAA'',''ODA'',''TDA'',''FBA'')' );

EXECUTE IMMEDIATE ('INSERT INTO INT_ACCT_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,OFFICE_ACCOUNT,
CUSTOMER_ID,EFFECTIVE_DATE,
VISION_OUC,VISION_GL,
TRAN_CCY,TRAN_TYPE,

SCHM_TYPE,INTEREST_RATE_DR,INTEREST_RATE_CR,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
NRML_PCNT_DR,
NRML_PCNT_CR)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
FORACID CONTRACT_ID,
''0'' OFFICE_ACCOUNT,
TRIM(CUST_ID) CUSTOMER_ID,
'||''''||G_Current_Business_Date ||''''||'
EFFECTIVE_DATE,
SOL_ID VISION_OUC,
CASE WHEN
DECODE(CLR_BAL_AMT,ABS(CLR_BAL_AMT),''C'',''D'') =''D'' Then ''50000000''
else ''60000000'' end VISION_GL,
ACCT_CRNCY_CODE TRAN_CCY,
DECODE(CLR_BAL_AMT,ABS(CLR_BAL_AMT),''C'',''D'')
TRAN_TYPE,
GAM.SCHM_TYPE SCHM_TYPE,
case when GAM.SCHM_TYPE in (''TDA'') then 0 else case
when nvl(t4.interest_rate_Dr,0) <> 0 then t4.interest_rate_dr else
(SELECT CASE WHEN FULL_RATE !=0 THEN FULL_RATE ELSE DIFF_RATE END
INTEREST_RATE_DR FROM TEMP_INT_ACCT WHERE INTEREST_IND =''D'' and
ENTITY_ID = GAM.ACID) end end INTEREST_RATE_DR,
case when GAM.SCHM_TYPE in (''LAA'') then 0 else
case when nvl(t4.interest_rate_cr,0) <> 0 then t4.interest_rate_cr else
(SELECT CASE WHEN FULL_RATE !=0 THEN FULL_RATE ELSE DIFF_RATE END
INTEREST_RATE_CR FROM TEMP_INT_ACCT WHERE INTEREST_IND =''C'' and
ENTITY_ID = GAM.ACID) end end INTEREST_RATE_CR,
---
ABS(DECODE(SCHM_TYPE,''TDA'',FN_INFY_RTINT(FORACID,TO_DATE('||''''||G_Cur
rent_Business_Date ||''''||',''DD-MON-RRRR''),CLR_BAL_AMT,''D'',''N''),
--- FN_LIVE_RTINT
(FORACID,TO_DATE('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR''),CLR_BAL_AMT,''D'',''N''))) INTEREST_RATE_DR,
---
ABS(DECODE(SCHM_TYPE,''TDA'',FN_INFY_RTINT(FORACID,TO_DATE('||''''||G_Cur
rent_Business_Date ||''''||',''DD-MON-RRRR''),CLR_BAL_AMT,''C'',''N''),
--- FN_LIVE_RTINT
(FORACID,TO_DATE('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR''),CLR_BAL_AMT,''C'',''N''))) INTEREST_RATE_CR,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||'
PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
NRML_PCNT_DR,
NRML_PCNT_CR
FROM
GAM' || V_DB_Link || ' GAM, TEMP_RATES t4,
(SELECT ENTITY_ID
,NRML_PCNT_CR,NRML_PCNT_DR FROM ITC' || V_DB_Link || ' T1
WHERE ENTITY_TYPE =''ACCNT'' AND
INT_TBL_CODE_SRL_NUM =(SELECT MAX(INT_TBL_CODE_SRL_NUM) FROM ITC' ||
V_DB_Link || ' T2
WHERE T1.ENTITY_ID =T2.ENTITY_ID AND ENTITY_TYPE
=''ACCNT'')
And (NRML_PCNT_CR !=0 or NRML_PCNT_DR !=0)) T2
WHERE GAM.Acid = T2.ENTITY_ID(+)
and GAM.foracid = t4.account_no(+)
AND GAM.SCHM_TYPE
IN(''LAA'',''SBA'',''CAA'',''ODA'',''TDA'',''FBA'')' );

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/LHT Does not
exists/not accessable !! Aborting execution.');
RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate INT_ACCT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN

writeLogInfo('INSERT INTO INT_ACCT_FEED_STG_HISTORY (


COUNTRY,LE_BOOK,
CONTRACT_ID,OFFICE_ACCOUNT,
CUSTOMER_ID,EFFECTIVE_DATE,
VISION_OUC,VISION_GL,
TRAN_CCY,TRAN_TYPE,

SCHM_TYPE,INTEREST_RATE_DR,INTEREST_RATE_CR,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
NRML_PCNT_DR,
NRML_PCNT_CR)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
FORACID CONTRACT_ID,
''0'' OFFICE_ACCOUNT,
TRIM(CUST_ID) CUSTOMER_ID,
'||''''||G_Current_Business_Date ||''''||'
EFFECTIVE_DATE,
SOL_ID VISION_OUC,
CASE WHEN
DECODE(CLR_BAL_AMT,ABS(CLR_BAL_AMT),''C'',''D'') =''D'' Then ''50000000''
else ''60000000'' end VISION_GL,
ACCT_CRNCY_CODE TRAN_CCY,
DECODE(CLR_BAL_AMT,ABS(CLR_BAL_AMT),''C'',''D'')
TRAN_TYPE,
GAM.SCHM_TYPE SCHM_TYPE,
case when GAM.SCHM_TYPE in (''TDA'') then 0 else case
when nvl(t4.interest_rate_Dr,0) <> 0 then t4.interest_rate_dr else
(SELECT CASE WHEN FULL_RATE !=0 THEN FULL_RATE ELSE DIFF_RATE END
INTEREST_RATE_DR FROM TEMP_INT_ACCT WHERE INTEREST_IND =''D'' and
ENTITY_ID = GAM.ACID) end end INTEREST_RATE_DR,
case when GAM.SCHM_TYPE in (''LAA'') then 0 else
case when nvl(t4.interest_rate_cr,0) <> 0 then t4.interest_rate_cr else
(SELECT CASE WHEN FULL_RATE !=0 THEN FULL_RATE ELSE DIFF_RATE END
INTEREST_RATE_CR FROM TEMP_INT_ACCT WHERE INTEREST_IND =''C'' and
ENTITY_ID = GAM.ACID) end end INTEREST_RATE_CR,
---
ABS(DECODE(SCHM_TYPE,''TDA'',FN_INFY_RTINT(FORACID,TO_DATE('||''''||G_Cur
rent_Business_Date ||''''||',''DD-MON-RRRR''),CLR_BAL_AMT,''D'',''N''),
--- FN_LIVE_RTINT
(FORACID,TO_DATE('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR''),CLR_BAL_AMT,''D'',''N''))) INTEREST_RATE_DR,
---
ABS(DECODE(SCHM_TYPE,''TDA'',FN_INFY_RTINT(FORACID,TO_DATE('||''''||G_Cur
rent_Business_Date ||''''||',''DD-MON-RRRR''),CLR_BAL_AMT,''C'',''N''),
--- FN_LIVE_RTINT
(FORACID,TO_DATE('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR''),CLR_BAL_AMT,''C'',''N''))) INTEREST_RATE_CR,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||'
PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
NRML_PCNT_DR,
NRML_PCNT_CR
FROM
GAM' || V_DB_Link || ' GAM, TEMP_RATES t4,
(SELECT ENTITY_ID
,NRML_PCNT_CR,NRML_PCNT_DR FROM ITC' || V_DB_Link || ' T1
WHERE ENTITY_TYPE =''ACCNT'' AND
INT_TBL_CODE_SRL_NUM =(SELECT MAX(INT_TBL_CODE_SRL_NUM) FROM ITC' ||
V_DB_Link || ' T2
WHERE T1.ENTITY_ID =T2.ENTITY_ID AND ENTITY_TYPE
=''ACCNT'')
And (NRML_PCNT_CR !=0 or NRML_PCNT_DR !=0)) T2
WHERE GAM.Acid = T2.ENTITY_ID(+)
and GAM.foracid = t4.account_no(+)
AND GAM.SCHM_TYPE
IN(''LAA'',''SBA'',''CAA'',''ODA'',''TDA'',''FBA'')' );

EXECUTE IMMEDIATE ('INSERT INTO


INT_ACCT_FEED_STG_HISTORY (
COUNTRY,LE_BOOK,
CONTRACT_ID,OFFICE_ACCOUNT,
CUSTOMER_ID,EFFECTIVE_DATE,
VISION_OUC,VISION_GL,
TRAN_CCY,TRAN_TYPE,

SCHM_TYPE,INTEREST_RATE_DR,INTEREST_RATE_CR,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
NRML_PCNT_DR,
NRML_PCNT_CR)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
FORACID CONTRACT_ID,
''0'' OFFICE_ACCOUNT,
TRIM(CUST_ID) CUSTOMER_ID,
'||''''||G_Current_Business_Date ||''''||'
EFFECTIVE_DATE,
SOL_ID VISION_OUC,
CASE WHEN
DECODE(CLR_BAL_AMT,ABS(CLR_BAL_AMT),''C'',''D'') =''D'' Then ''50000000''
else ''60000000'' end VISION_GL,
ACCT_CRNCY_CODE TRAN_CCY,
DECODE(CLR_BAL_AMT,ABS(CLR_BAL_AMT),''C'',''D'')
TRAN_TYPE,
GAM.SCHM_TYPE SCHM_TYPE,
case when GAM.SCHM_TYPE in (''TDA'') then 0 else case
when nvl(t4.interest_rate_Dr,0) <> 0 then t4.interest_rate_dr else
(SELECT CASE WHEN FULL_RATE !=0 THEN FULL_RATE ELSE DIFF_RATE END
INTEREST_RATE_DR FROM TEMP_INT_ACCT WHERE INTEREST_IND =''D'' and
ENTITY_ID = GAM.ACID) end end INTEREST_RATE_DR,
case when GAM.SCHM_TYPE in (''LAA'') then 0 else
case when nvl(t4.interest_rate_cr,0) <> 0 then t4.interest_rate_cr else
(SELECT CASE WHEN FULL_RATE !=0 THEN FULL_RATE ELSE DIFF_RATE END
INTEREST_RATE_CR FROM TEMP_INT_ACCT WHERE INTEREST_IND =''C'' and
ENTITY_ID = GAM.ACID) end end INTEREST_RATE_CR,
---
ABS(DECODE(SCHM_TYPE,''TDA'',FN_INFY_RTINT(FORACID,TO_DATE('||''''||G_Cur
rent_Business_Date ||''''||',''DD-MON-RRRR''),CLR_BAL_AMT,''D'',''N''),
--- FN_LIVE_RTINT
(FORACID,TO_DATE('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR''),CLR_BAL_AMT,''D'',''N''))) INTEREST_RATE_DR,
---
ABS(DECODE(SCHM_TYPE,''TDA'',FN_INFY_RTINT(FORACID,TO_DATE('||''''||G_Cur
rent_Business_Date ||''''||',''DD-MON-RRRR''),CLR_BAL_AMT,''C'',''N''),
--- FN_LIVE_RTINT
(FORACID,TO_DATE('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR''),CLR_BAL_AMT,''C'',''N''))) INTEREST_RATE_CR,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||'
PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
NRML_PCNT_DR,
NRML_PCNT_CR
FROM
GAM' || V_DB_Link || ' GAM, TEMP_RATES t4,
(SELECT ENTITY_ID
,NRML_PCNT_CR,NRML_PCNT_DR FROM ITC' || V_DB_Link || ' T1
WHERE ENTITY_TYPE =''ACCNT'' AND
INT_TBL_CODE_SRL_NUM =(SELECT MAX(INT_TBL_CODE_SRL_NUM) FROM ITC' ||
V_DB_Link || ' T2
WHERE T1.ENTITY_ID =T2.ENTITY_ID AND ENTITY_TYPE
=''ACCNT'')
And (NRML_PCNT_CR !=0 or NRML_PCNT_DR !=0)) T2
WHERE GAM.Acid = T2.ENTITY_ID(+)
and GAM.foracid = t4.account_no(+)
AND GAM.SCHM_TYPE
IN(''LAA'',''SBA'',''CAA'',''ODA'',''TDA'',''FBA'')' );

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/LHT Does not
exists/not accessable INT_ACCT_FEED_STG_HISTORY !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate INT_ACCT_FEED_STG_HISTORY !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Beginning staging table INT_ACCT_FEED_STG


Delete For Deletetion......');

BEGIN

writeLogInfo ('DELETE FROM INT_ACCT_FEED_STG_HISTORY T1


WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
='||''''||G_Current_Business_Date||''''|| '
AND NVL(INTEREST_RATE_DR,0) = 0 AND
NVL(INTEREST_RATE_CR,0) =0 ');

EXECUTE IMMEDIATE ('DELETE FROM INT_ACCT_FEED_STG_HISTORY


T1
WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
='||''''||G_Current_Business_Date||''''|| '
AND NVL(INTEREST_RATE_DR,0) = 0 AND
NVL(INTEREST_RATE_CR,0) =0 ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table 3 has already
been dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception 3 raised
trying to Delete INT_ACCT_FEED_STG For No Interest Rates!!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN

writeLogInfo ('DELETE FROM INT_ACCT_FEED_STG T1


WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
='||''''||G_Current_Business_Date||''''|| '
AND NVL(INTEREST_RATE_DR,0) = 0 AND
NVL(INTEREST_RATE_CR,0) =0 ');

EXECUTE IMMEDIATE ('DELETE FROM INT_ACCT_FEED_STG T1


WHERE COUNTRY ='||''''||P_Country||'''' ||'
AND LE_BOOK ='||''''||P_Le_Book||'''' ||'
AND FEED_DATE
='||''''||G_Current_Business_Date||''''|| '
AND NVL(INTEREST_RATE_DR,0) = 0 AND
NVL(INTEREST_RATE_CR,0) =0 ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table 3 has already
been dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception 3 raised
trying to Delete INT_ACCT_FEED_STG For No Interest Rates!!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;
RETURN SUCCESSFUL_EXIT;

END getFinnacleIntAccrStgData;

/*#######################################################################
##################################################
Name : getContractExtrasStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[CONTRACT_EXTRAS_FEED_STG].
Author : Mallikarjuna rao.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getContractExtrasStgData(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;
IF (P_DBLink IS NOT NULL) THEN
BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getContractExtrasStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP TABLE
'||V_Schema_Name||'CONTRACT_EXTRAS_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CONTRACT_EXTRAS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table


CONTRACT_EXTRAS_FEED_STG population......');

BEGIN

writeLogInfo('INSERT INTO CONTRACT_EXTRAS_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,
CUSTOMER_ID,SECTOR_CODE,
SUB_SECTOR_CODE,BORROWER_CATEGORY_CODE,
PURPOSE_OF_ADVANCE,TYPE_OF_ADVANCE,
NATURE_OF_ADVANCE,GUAR_COVER_CODE,NAICS_CODE,
EMPLOYEE_ID,CUMMULATIVE_DEBIT,
CUMMULATIVE_CREDIT,LAST_TRAN_DATE,
ACCOUNT_CLOSING_DATE,PERFORMANCE_CLASS,
SUB_PERFORMANCE_CLASS,
USER_CLASSIFICATION_DATE,
FEED_DATE,PRODUCT,INT_COLL_FLG,INT_PAID_FLG,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,SANCT_AUTH_CODE,ORIGINAL_OUC,
FREZ_REASON_CODE,TRADE_BOM,ISIC_Codes,
ISIC_SUB_Codes,FACILITIES_SECURED,FORECLOSURE,PENAL_RATE,

INTEREST_TYPE,IRES_RES_TYPE,BUYORPROMOTER,OPERATIVE_ACCOUNT,FINAL_DISB_FL
G,

XBRLREST,ACTIONDATE,ACTIONTKN,DUEDATE,DDS_CHARG,ABA_FUNDS,XBRL_ACCT,ACCT_
ACCESS_CODE)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
T1.FORACID CONTRACT_ID,
TRIM(CUST_ID) CUSTOMER_ID,
TRIM(SECTOR_CODE) SECTOR_CODE,
TRIM(SUB_SECTOR_CODE) SUB_SECTOR_CODE,
BORROWER_CATEGORY_CODE BORROWER_CATEGORY_CODE,
PURPOSE_OF_ADVN PURPOSE_OF_ADVANCE,
TYPE_OF_ADVN TYPE_OF_ADVANCE,
NATURE_OF_ADVN NATURE_OF_ADVANCE,
GUAR_COVER_CODE GUAR_COVER_CODE,
FREE_CODE_6 NAICS_CODE,
EMP_ID EMPLOYEE_ID,
CUM_DR_AMT CUMMULATIVE_DEBIT,
CUM_CR_AMT CUMMULATIVE_CREDIT,
LAST_TRAN_DATE LAST_TRAN_DATE,
ACCT_CLS_DATE ACCOUNT_CLOSING_DATE,
CASE WHEN NVL(T3.DEL_FLG,''N'') = ''N'' THEN
T3.MAIN_CLASSIFICATION_USER
ELSE
''''
END PERFORMANCE_CLASS,
CASE WHEN NVL(T3.DEL_FLG,''N'') = ''N'' THEN
T3.SUB_CLASSIFICATION_USER
ELSE
''''
END SUB_PERFORMANCE_CLASS,
CASE WHEN NVL(T3.DEL_FLG,''N'') = ''N'' THEN
T3.USER_CLASSIFICATION_DATE
ELSE
NULL
END USER_CLASSIFICATION_DATE ,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||'
PRODUCT,t1.INT_COLL_FLG,t1.INT_PAID_FLG,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,
SANCT_AUTH_CODE,
T1.SOL_ID ORIGINAL_OUC,FREZ_REASON_CODE,
TRIM(T2.FREE_CODE_6) TRADE_BOM,
TRIM(T2.Free_code_8) ISIC_Codes,
TRIM(T2.Free_code_9) ISIC_SUB_Codes,
SUBSTR(T2.Free_Text_11,1,80) FACILITIES_SECURED,
SUBSTR(T2.Free_Text_1,1,80) FORECLOSURE,
T6.penal_int_pcnt PENAL_RATE,
T6.INT_RATE_TEXT INTEREST_TYPE,
TRIM(T2.free_text_8) IRES_RES_TYPE,
TRIM(T2.free_text_9) BUYORPROMOTER,
(select g1.foracid from lam@finacleprod ,
gam@finacleprod g1 where lam.acid=t1.acid and g1.acid=lam.op_acid)
Operative_account,
(select FINAL_DISB_FLG from lam@finacleprod
where lam.acid=t1.acid) FINAL_DISB_FLG,
(select ACCT_LABEL_RELTN_DESC from
alr@finacleprod t8 where t1.acid=t8.acid and acct_label =''XBRLREST'')
XBRLREST,
(select ACCT_LABEL_RELTN_DESC from alr@finacleprod t8
where t1.acid=t8.acid and acct_label =''ACTIONDATE'') ACTIONDATE,
(select ACCT_LABEL_RELTN_DESC from alr@finacleprod t8
where t1.acid=t8.acid and acct_label =''ACTIONTKN'') ACTIONTKN,
(select ACCT_LABEL_RELTN_DESC from alr@finacleprod t8
where t1.acid=t8.acid and acct_label =''DUEDATE'') DUEDATE,
(select ACCT_LABEL_RELTN_DESC from alr@finacleprod t8
where t1.acid=t8.acid and acct_label =''DDS_CHARG'') DDS_CHARG,
(select ACCT_LABEL_RELTN_DESC from alr@finacleprod t8
where t1.acid=t8.acid and acct_label =''ABA_FUNDS'') ABA_FUNDS,
(select ACCT_LABEL_RELTN_DESC from alr@finacleprod t8
where t1.acid=t8.acid and acct_label =''XBRLACCT'') XBRL_ACCT,
ACCT_ACCESS_CODE
FROM
GAM' || V_DB_Link || ' T1 ,GAC' || V_DB_Link ||
' T2 ,(SELECT * FROM ACD' || V_DB_Link || ' WHERE B2K_TYPE = ''ACCNT'')
T3 ,
(SELECT ACID,SANCT_AUTH_CODE
,LCHG_TIME FROM LHT' || V_DB_Link || ' T5 WHERE
SERIAL_NUM=(SELECT
MAX(SERIAL_NUM) FROM LHT' || V_DB_Link || ' t6 WHERE T5.ACID =T6.ACID
AND STATUS =''A'' )) T4,
TEMP_RATES T6,
AAC@FINACLEPROD AAC
WHERE T1.ACID = T2.ACID(+)
AND T1.ACID =T3.B2K_ID (+)
AND T1.ACID = T4.ACID(+)
AND T1.ACID = AAC.ACID(+)
AND t1.ENTITY_CRE_FLG =''Y''
AND T1.FORACID= T6.ACCOUNT_NO(+)
AND (T1.LCHG_TIME
>'||''''||G_LastBusinessDateRun||'''' ||' OR
NVL(T2.LCHG_TIME,'||''''||G_LastBusinessDateRun||''''
||') > '||''''||G_LastBusinessDateRun||'''' ||' OR
NVL(T3.LCHG_TIME,'||''''||G_LastBusinessDateRun||''''
||') > '||''''||G_LastBusinessDateRun||'''' ||' OR
NVL(T4.LCHG_TIME,'||''''||G_LastBusinessDateRun||''''
||') > '||''''||G_LastBusinessDateRun||'''' ||')');

/*(select a.foracid foracid,c.PENAL_INT_PCNT Penal_Rate from


GAM' || V_DB_Link || ' a, itc' || V_DB_Link || ' b,lavs' ||
V_DB_Link || ' c,icv' || V_DB_Link || ' d
where a.acid=b.entity_id
and (b.LCHG_TIME,INT_TBL_CODE_SRL_NUM) = (select
max(LCHG_TIME),max(INT_TBL_CODE_SRL_NUM) from itc' || V_DB_Link || '
where entity_id=b.entity_id and
entity_type = ''ACCNT'' AND del_flg != ''Y'' AND entity_cre_flg = ''Y''
)
and b.int_tbl_code= c.int_tbl_code
and c.int_tbl_code=d.int_tbl_code
and c.int_tbl_ver_num = d.int_version
AND c.crncy_code = a.acct_crncy_code
and c.LCHG_TIME = (select max(LCHG_TIME) from lavs' || V_DB_Link
|| ' where int_tbl_code= c.int_tbl_code
and int_tbl_ver_num = c.int_tbl_ver_num
AND crncy_code = c.crncy_code)
and d.del_flg != ''Y''
AND d.entity_cre_flg = ''Y''
AND d.start_date <= '||''''||G_LastBusinessDateRun||'''' ||'
AND d.end_date >= '||''''||G_LastBusinessDateRun||'''' ||'
AND d.base_ind != ''Y''
AND d.crncy_code = a.acct_crncy_code
AND d.lchg_time in (select max(lchg_time) from icv' || V_DB_Link
|| '
WHERE del_flg != ''Y'' AND entity_cre_flg =
''Y''
AND int_tbl_code = d.int_tbl_code
AND start_date <=
'||''''||G_LastBusinessDateRun||'''' ||'
AND end_date >=
'||''''||G_LastBusinessDateRun||'''' ||'
AND base_ind != ''Y''
AND crncy_code = a.acct_crncy_code ))*/

EXECUTE IMMEDIATE ('INSERT INTO CONTRACT_EXTRAS_FEED_STG


(
COUNTRY,LE_BOOK,
CONTRACT_ID,
CUSTOMER_ID,SECTOR_CODE,
SUB_SECTOR_CODE,BORROWER_CATEGORY_CODE,
PURPOSE_OF_ADVANCE,TYPE_OF_ADVANCE,
NATURE_OF_ADVANCE,GUAR_COVER_CODE,NAICS_CODE,
EMPLOYEE_ID,CUMMULATIVE_DEBIT,
CUMMULATIVE_CREDIT,LAST_TRAN_DATE,
ACCOUNT_CLOSING_DATE,PERFORMANCE_CLASS,
SUB_PERFORMANCE_CLASS,
USER_CLASSIFICATION_DATE,
FEED_DATE,PRODUCT,INT_COLL_FLG,INT_PAID_FLG,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,SANCT_AUTH_CODE,ORIGINAL_OUC,
FREZ_REASON_CODE,TRADE_BOM,ISIC_Codes,
ISIC_SUB_Codes,FACILITIES_SECURED,FORECLOSURE,PENAL_RATE,

INTEREST_TYPE,IRES_RES_TYPE,BUYORPROMOTER,OPERATIVE_ACCOUNT,FINAL_DISB_FL
G,

XBRLREST,ACTIONDATE,ACTIONTKN,DUEDATE,DDS_CHARG,ABA_FUNDS,XBRL_ACCT,ACCT_
ACCESS_CODE)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
T1.FORACID CONTRACT_ID,
TRIM(CUST_ID) CUSTOMER_ID,
SECTOR_CODE SECTOR_CODE,
SUB_SECTOR_CODE SUB_SECTOR_CODE,
BORROWER_CATEGORY_CODE BORROWER_CATEGORY_CODE,
PURPOSE_OF_ADVN PURPOSE_OF_ADVANCE,
TYPE_OF_ADVN TYPE_OF_ADVANCE,
NATURE_OF_ADVN NATURE_OF_ADVANCE,
GUAR_COVER_CODE GUAR_COVER_CODE,
FREE_CODE_6 NAICS_CODE,
EMP_ID
EMPLOYEE_ID,
CUM_DR_AMT CUMMULATIVE_DEBIT,
CUM_CR_AMT
CUMMULATIVE_CREDIT,
LAST_TRAN_DATE LAST_TRAN_DATE,
ACCT_CLS_DATE ACCOUNT_CLOSING_DATE,
CASE WHEN NVL(T3.DEL_FLG,''N'') = ''N'' THEN
T3.MAIN_CLASSIFICATION_USER
ELSE '''' END PERFORMANCE_CLASS,
CASE WHEN NVL(T3.DEL_FLG,''N'') = ''N'' THEN
T3.SUB_CLASSIFICATION_USER
ELSE '''' END SUB_PERFORMANCE_CLASS,
CASE WHEN NVL(T3.DEL_FLG,''N'') = ''N'' THEN
T3.USER_CLASSIFICATION_DATE
ELSE NULL END USER_CLASSIFICATION_DATE ,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||'
PRODUCT,T1.INT_COLL_FLG,T1.INT_PAID_FLG,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,
SANCT_AUTH_CODE,
T1.SOL_ID ORIGINAL_OUC,FREZ_REASON_CODE,
T2.FREE_CODE_6 TRADE_BOM,
T2.Free_code_8 ISIC_Codes,
T2.Free_code_9 ISIC_SUB_Codes,
SUBSTR(T2.Free_Text_11,1,80) FACILITIES_SECURED,
SUBSTR(T2.Free_Text_1,1,80) FORECLOSURE,
T6.penal_int_pcnt PENAL_RATE,
T6.INT_RATE_TEXT INTEREST_TYPE,
T2.free_text_8 IRES_RES_TYPE,
T2.free_text_9 BUYORPROMOTER,
(select g1.foracid from lam@finacleprod ,
gam@finacleprod g1 where lam.acid=t1.acid and g1.acid=lam.op_acid)
Operative_account,
(select FINAL_DISB_FLG from lam@finacleprod where
lam.acid=t1.acid) FINAL_DISB_FLG,
(select ACCT_LABEL_RELTN_DESC from
alr@finacleprod t8 where t1.acid=t8.acid and acct_label =''XBRLREST'')
XBRLREST,
(select ACCT_LABEL_RELTN_DESC from alr@finacleprod t8
where t1.acid=t8.acid and acct_label =''ACTIONDATE'') ACTIONDATE,
(select ACCT_LABEL_RELTN_DESC from alr@finacleprod t8
where t1.acid=t8.acid and acct_label =''ACTIONTKN'') ACTIONTKN,
(select ACCT_LABEL_RELTN_DESC from alr@finacleprod t8
where t1.acid=t8.acid and acct_label =''DUEDATE'') DUEDATE,
(select ACCT_LABEL_RELTN_DESC from alr@finacleprod t8
where t1.acid=t8.acid and acct_label =''DDS_CHARG'') DDS_CHARG,
(select ACCT_LABEL_RELTN_DESC from alr@finacleprod t8
where t1.acid=t8.acid and acct_label =''ABA_FUNDS'') ABA_FUNDS ,
(select ACCT_LABEL_RELTN_DESC from alr@finacleprod t8
where t1.acid=t8.acid and acct_label =''XBRLACCT'') XBRL_ACCT,
ACCT_ACCESS_CODE
FROM
GAM' || V_DB_Link || ' T1 ,GAC' || V_DB_Link ||
' T2 ,(SELECT * FROM ACD' || V_DB_Link || ' WHERE B2K_TYPE = ''ACCNT'')
T3 ,
(SELECT ACID,SANCT_AUTH_CODE ,LCHG_TIME FROM LHT' ||
V_DB_Link || ' T5 WHERE
SERIAL_NUM=(SELECT MAX(SERIAL_NUM) FROM LHT' ||
V_DB_Link || ' t6 WHERE T5.ACID =T6.ACID AND STATUS =''A'' )) T4,
TEMP_RATES T6,
AAC@FINACLEPROD AAC
WHERE T1.ACID = T2.ACID(+)
AND T1.ACID =T3.B2K_ID (+)
AND T1.ACID = T4.ACID(+)
AND T1.ACID = AAC.ACID(+)
AND T1.FORACID= T6.ACCOUNT_NO(+)
AND t1.ENTITY_CRE_FLG =''Y''
AND (T1.LCHG_TIME
>'||''''||G_LastBusinessDateRun||'''' ||' OR
NVL(T2.LCHG_TIME,'||''''||G_LastBusinessDateRun||''''
||') > '||''''||G_LastBusinessDateRun||'''' ||' OR
NVL(T3.LCHG_TIME,'||''''||G_LastBusinessDateRun||''''
||') > '||''''||G_LastBusinessDateRun||'''' ||' OR
NVL(T4.LCHG_TIME,'||''''||G_LastBusinessDateRun||''''
||') > '||''''||G_LastBusinessDateRun||'''' ||')');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables CMG/GAC/ACD Does
not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACT_EXTRAS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN

writeLogInfo('update accounts_extras set


acct_access_code = null where acct_access_code is not null');

EXECUTE IMMEDIATE ('update accounts_extras set


acct_access_code = null where acct_access_code is not null');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables CMG/GAC/ACD
Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACT_EXTRAS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN

writeLogInfo('update accounts_extras t3 set


acct_access_code = (select acct_access_code
from AAC@FINACLEPROD t1,
gam@finacleprod t2
where t1.acid = t2.acid
and t3.account_no = t2.foracid)
where t3.account_no in (select foracid
from AAC@FINACLEPROD t1,
gam@finacleprod t2
where t1.acid = t2.acid)');

EXECUTE IMMEDIATE ('update accounts_extras t3 set


acct_access_code = (select acct_access_code
from AAC@FINACLEPROD t1,
gam@finacleprod t2
where t1.acid = t2.acid
and t3.account_no =
t2.foracid)
where t3.account_no in
(select foracid
from AAC@FINACLEPROD t1,
gam@finacleprod t2
where t1.acid = t2.acid)');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables CMG/GAC/ACD
Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACT_EXTRAS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;
updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getContractExtrasStgData;

/*#######################################################################
##################################################
Name : getImtScanStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[SCAN_MANDATE_FEED_STG].
Author : Mallikarjuna rao.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getImtScanStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getImtScanStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP TABLE
'||V_Schema_Name||'SCAN_MANDATE_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop SCAN_MANDATE_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table SCAN_MANDATE_FEED_STG


population......');

BEGIN
writeLogInfo('INSERT INTO SCAN_MANDATE_FEED_STG (
COUNTRY,LE_BOOK,
CONTRACT_ID,ACID,
SCAN_MANDATE,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT COUNTRY,LE_BOOK,
CONTRACT_ID,ACID,SCAN_MANDATE,

FEED_DATE,PRODUCT,RUN_STATUS,DATE_LAST_MODIFIED,DATE_CREATION
FROM
(SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
FORACID CONTRACT_ID,
GAM.ACID ACID,
''N'' SCAN_MANDATE,'||
''''|| G_Current_Business_Date || '''' || '
FEED_DATE,'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
LCHG_TIME DATE_LAST_MODIFIED,
RCRE_TIME DATE_CREATION,
SOL_ID
FROM '||G_GAM_Table||'' || V_DB_Link || ' GAM
WHERE GAM.ACID >'' ''
AND EXISTS (SELECT ''x'' FROM SST' ||
V_DB_Link || ' WHERE GAM.SOL_ID =SST.SOL_ID AND SET_ID = ''ALL'')
AND SCHM_TYPE IN (''SBA'',''ODA'',''CAA'')
/*AND SCHM_CODE NOT IN
(''ASSET'',''BCOTC'',''BCS'',''CASH'',''CONTA'',''CALLC'',''CALLG'',''CAL
LI'',''NCCCA'')
AND GAM.FORACID NOT LIKE ''CD%''
AND GAM.ACCT_NAME NOT LIKE ''GSS%''*/
AND GAM.ENTITY_CRE_FLG =''Y''
AND GAM.ACCT_OWNERSHIP !=''O''
AND GAM.ACCT_CLS_FLG =''N''
AND GAM.DEL_FLG=''N''
AND GAM.ACCT_OPN_DATE BETWEEN
'||''''||G_Last_90_days||''' AND '||''''||G_Current_Business_Date||'''
AND NOT EXISTS (SELECT ''x'' FROM
'||G_GAM_Table||'' || V_DB_Link || ' T1 WHERE T1.ACID >'' '' AND
GAM.SCHM_CODE =T1.SCHM_CODE
AND ACCT_OWNERSHIP=''E'' AND
SCHM_CODE =''CADOM'')) T1
WHERE NOT EXISTS
(SELECT ''X'' FROM IMT' || V_DB_Link || '
WHERE SOL_ID = T1.SOL_ID AND ACID = T1.ACID
AND ENTITY_CRE_FLG =''Y'' AND
DEL_FLG=''N'')');

EXECUTE IMMEDIATE ('INSERT INTO SCAN_MANDATE_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,ACID,
SCAN_MANDATE,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT COUNTRY,LE_BOOK,
CONTRACT_ID,ACID,SCAN_MANDATE,

FEED_DATE,PRODUCT,RUN_STATUS,DATE_LAST_MODIFIED,DATE_CREATION
FROM
(SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
FORACID CONTRACT_ID,
GAM.ACID ACID,
''N'' SCAN_MANDATE,'||
''''|| G_Current_Business_Date || '''' || '
FEED_DATE,'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
LCHG_TIME DATE_LAST_MODIFIED,
RCRE_TIME DATE_CREATION,
SOL_ID
FROM '||G_GAM_Table||'' || V_DB_Link || ' GAM
WHERE GAM.ACID >'' ''
AND EXISTS (SELECT ''x'' FROM SST' ||
V_DB_Link || ' WHERE GAM.SOL_ID =SST.SOL_ID AND SET_ID = ''ALL'')
AND SCHM_TYPE IN (''SBA'',''ODA'',''CAA'')
AND SCHM_CODE NOT IN
(''BRPRO'',''FCARD'',''MACCA'',''MCCCA'',''CAREM'',''CALLC'',''CALLG'',''
CALLI'',''NCCCA'')
AND GAM.FORACID NOT LIKE ''CD%''
AND GAM.ACCT_NAME NOT LIKE ''GSS%''
AND GAM.ENTITY_CRE_FLG =''Y''
AND GAM.ACCT_OWNERSHIP !=''O''
AND GAM.ACCT_CLS_FLG =''N''
AND GAM.DEL_FLG=''N''
AND GAM.ACCT_OPN_DATE BETWEEN
'||''''||G_Last_90_days||''' AND '||''''||G_Current_Business_Date||'''
AND NOT EXISTS (SELECT ''x'' FROM
'||G_GAM_Table||'' || V_DB_Link || ' T1 WHERE T1.ACID >'' '' AND
GAM.SCHM_CODE =T1.SCHM_CODE
AND ACCT_OWNERSHIP=''E'' AND
SCHM_CODE =''CADOM'')) T1
WHERE NOT EXISTS
(SELECT ''X'' FROM IMT' || V_DB_Link || '
WHERE SOL_ID = T1.SOL_ID AND ACID = T1.ACID
AND ENTITY_CRE_FLG =''Y'' AND
DEL_FLG=''N'')');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables CUSTOM.IMT_SCAN
Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate SCAN_MANDATE_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getImtScanStgData;

/*#######################################################################
##################################################
Name : getContractSwiftStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[CONTRACTS_SWIFT_FEED_STG].
Author : Mallikarjuna rao.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/
FUNCTION getContractSwiftStgData(P_Country IN VARCHAR2, P_Le_Book
IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getContractSwiftStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table


CONTRACTS_SWIFT_FEED_STG population......');

BEGIN
IF (G_Manual_Flag = 'N') THEN

EXECUTE IMMEDIATE ('INSERT INTO CONTRACTS_SWIFT_FEED_STG


(
COUNTRY,LE_BOOK,
CONTRACT_ID,CUSTOMER_ID,
VISION_OUC,VISION_SBU,
ACCOUNT_OFFICER,DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
MATURITY_DATE,DAYS_REMAINING_MAT,
DAYS_START_MAT,PRINCIPAL_GL,
INTEREST_RATE,COST_OF_FUNDS_RATE,
CONTRACT_STATUS,RECORD_TYPE,
SOURCE_ID,BENEFICIARY,
TRADE_REF_NO,BUSINESS_DATE,
VALUE_DATE,TRAN_AMT,
PARTY_NAME,PARTY_ADDRESS,
COUNTRY_CODE,CURRENCY,
ACCOUNT_NO,MT_NO,
BANK_CODE,NOTL_CONV_RATE,
BILL_AMT_INR ,PROCESSORS_ID,
AUTHORIZERS_ID,OPER_ACID,
DIS_AMT,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION,REG_TYPE,REG_SUB_TYPE)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
nvl(FBM.OPER_ACID,FBM.BILL_ID)
CONTRACT_ID,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
FBM.SOL_ID VISION_OUC,
case when FBM.SOL_ID=''016'' then ''07''
when FBM.SOL_ID=''17'' then ''08''
when FBM.SOL_ID=''79'' then ''09''
when FBM.SOL_ID=''18'' then '||''''||P_Le_Book||'''' ||'
when FBM.SOL_ID=''19'' then ''04''
when FBM.SOL_ID=''89'' then ''06''
when FBM.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
GAM.ACCT_MGR_USER_ID
ACCOUNT_OFFICER,
''BILLS'' DEAL_TYPE,
FBR.REG_TYPE_DESC DEAL_SUB_TYPE,
FBM.BILL_DATE START_DATE,
FBM.DUE_DATE MATURITY_DATE,
CASE WHEN FBM.DUE_DATE > SYSDATE THEN
TRUNC(FBM.DUE_DATE - SYSDATE) ELSE 0 END AS DAYS_REMAINING_MAT,
TRUNC(FBM.DUE_DATE - FBM.BILL_DATE) AS
DAYS_START_MAT,
''0'' PRINCIPAL_GL,
0 INTEREST_RATE,
0 COST_OF_FUNDS_RATE,
FBM.BILL_STAT CONTRACT_STATUS,
5 RECORD_TYPE,
53 SOURCE_ID,
''NA'' BENEFICIARY,
FBM.BILL_ID TRADE_REF_NO,
FBM.BILL_DATE BUSINESS_DATE,
SMH.VALUE_DATE VALUE_DATE,
SMH.TRAN_AMT TRAN_AMT,
FBM.OTHER_PARTY_NAME PARTY_NAME,
FBM.OTHER_PARTY_ADDR_1 PARTY_ADDRESS,
FBM.OTHER_PARTY_CNTRY_CODE COUNTRY_CODE,
SMH.CRNCY_CODE CURRENCY,
GAM.FORACID ACCOUNT_NO,
SMH.MT_NO MT_NO,
CORR_COLL_BANK_CODE BANK_CODE,
NOTL_CONV_RATE NOTL_CONV_RATE,
BILL_AMT_INR BILL_AMT_INR ,
FBM.RCRE_USER_ID PROCESSORS_ID,
FBM.LCHG_USER_ID AUTHORIZERS_ID,
''NA'' OPER_ACID,
FBM.BILL_AMT DIS_AMT, '||
''''|| G_Current_Business_Date || '''' || '
FEED_DATE,'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,
FBM.REG_TYPE,
FBM.REG_SUB_TYPE
FROM FBM' || V_DB_Link || ' FBM, SMH' ||
V_DB_Link || ' SMH, '||G_GAM_Table||'' || V_DB_Link || ' GAM ,FBR' ||
V_DB_Link || ' FBR
WHERE FBM.BILL_ID =SMH.SENDER_REF_NUM
AND FBM.REG_TYPE in
(''TT'',''CON'',''CBE'',''S'',''U'')
AND FBM.OPER_ACID= GAM.ACID(+)
AND FBM.REG_TYPE = FBR.REG_TYPE
AND SMH.MT_NO=''103''
AND SMH.STATUS=''T''
AND FBM.ENTITY_CRE_FLG=''Y''
AND FBM.DEL_FLG =''N''
AND FBM.BILL_DATE >
'||''''||G_LastBusinessDateRun||'''
UNION
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
Bill_ID Contract_ID,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
FBM.SOL_ID VISION_OUC,
case when FBM.SOL_ID=''016'' then ''07''
when FBM.SOL_ID=''17'' then ''08''
when FBM.SOL_ID=''79'' then ''09''
when FBM.SOL_ID=''18'' then '||''''||P_Le_Book||'''' ||'
when FBM.SOL_ID=''19'' then ''04''
when FBM.SOL_ID=''89'' then ''06''
when FBM.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
GAM.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
''BILLS'' DEAL_TYPE,
FBR.REG_TYPE_DESC DEAL_SUB_TYPE,
FBM.BILL_DATE START_DATE,
FBM.DUE_DATE MATURITY_DATE,
CASE WHEN FBM.DUE_DATE > SYSDATE THEN
TRUNC(FBM.DUE_DATE - SYSDATE) ELSE 0 END AS DAYS_REMAINING_MAT,
TRUNC(FBM.DUE_DATE - FBM.BILL_DATE) AS
DAYS_START_MAT,
''0'' PRINCIPAL_GL,
0 INTEREST_RATE,
0 COST_OF_FUNDS_RATE,
FBM.BILL_STAT CONTRACT_STATUS,
5 RECORD_TYPE,
53 SOURCE_ID,
''NA'' BENEFICIARY,
FBM.BILL_ID TRADE_REF_NO,
bill_date Business_Date,
Due_date Value_date,
BILL_AMT Tran_Amt,
Other_party_name Party_Name,
other_party_addr_1 Party_Address,
other_party_cntry_code Country_Code,
Bill_crncy_code CURRENCY,
foracid Account_No,
''0'' MT_NO,
Corr_Coll_Bank_code Bank_code,
Notl_conv_rate Notl_conv_rate,
BILL_AMT_INR BILL_AMT_INR,
fbm.rcre_user_id PROCESSORS_ID,
fbm.lchg_user_id AUTHORIZERS_ID,
''NA'' OPER_ACID,
FBM.BILL_AMT DIS_AMT, '||
''''|| G_Current_Business_Date || '''' || '
FEED_DATE,'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
FBM.LCHG_TIME DATE_LAST_MODIFIED,
FBM.RCRE_TIME DATE_CREATION,
FBM.REG_TYPE,
FBM.REG_SUB_TYPE
FROM '||G_GAM_Table||'' || V_DB_Link || ' GAM ,fbm'
|| V_DB_Link || ' ,FBR' || V_DB_Link || ' FBR
WHERE FBM.reg_type in( ''OREM'',''IREM'')
/* AND FBM.reg_type !=''OWBLC''*/
AND oper_acid=Gam.acid(+)
AND FBM.REG_TYPE = FBR.REG_TYPE
AND fbm.del_flg=''N''
AND FBM.Bill_date >
'||''''||G_LastBusinessDateRun||'''');
ELSE
EXECUTE IMMEDIATE ('INSERT INTO CONTRACTS_SWIFT_FEED_STG
(
COUNTRY,LE_BOOK,
CONTRACT_ID,CUSTOMER_ID,
VISION_OUC,VISION_SBU,
ACCOUNT_OFFICER,DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
MATURITY_DATE,DAYS_REMAINING_MAT,
DAYS_START_MAT,PRINCIPAL_GL,
INTEREST_RATE,COST_OF_FUNDS_RATE,
CONTRACT_STATUS,RECORD_TYPE,
SOURCE_ID,BENEFICIARY,
TRADE_REF_NO,BUSINESS_DATE,
VALUE_DATE,TRAN_AMT,
PARTY_NAME,PARTY_ADDRESS,
COUNTRY_CODE,CURRENCY,
ACCOUNT_NO,MT_NO,
BANK_CODE,NOTL_CONV_RATE,
BILL_AMT_INR ,PROCESSORS_ID,
AUTHORIZERS_ID,OPER_ACID,
DIS_AMT,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION, REG_TYPE,
REG_SUB_TYPE)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
nvl(FBM.OPER_ACID,FBM.BILL_ID)
CONTRACT_ID,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
FBM.SOL_ID VISION_OUC,
case when FBM.SOL_ID=''016'' then ''07''
when FBM.SOL_ID=''17'' then ''08''
when FBM.SOL_ID=''79'' then ''09''
when FBM.SOL_ID=''18'' then '||''''||P_Le_Book||'''' ||'
when FBM.SOL_ID=''19'' then ''04''
when FBM.SOL_ID=''89'' then ''06''
when FBM.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
GAM.ACCT_MGR_USER_ID
ACCOUNT_OFFICER,
''BILLS'' DEAL_TYPE,
FBR.REG_TYPE_DESC DEAL_SUB_TYPE,
FBM.BILL_DATE START_DATE,
FBM.DUE_DATE MATURITY_DATE,
CASE WHEN FBM.DUE_DATE > SYSDATE THEN
TRUNC(FBM.DUE_DATE - SYSDATE) ELSE 0 END AS DAYS_REMAINING_MAT,
TRUNC(FBM.DUE_DATE - FBM.BILL_DATE) AS
DAYS_START_MAT,
''0'' PRINCIPAL_GL,
0 INTEREST_RATE,
0 COST_OF_FUNDS_RATE,
FBM.BILL_STAT CONTRACT_STATUS,
5 RECORD_TYPE,
53 SOURCE_ID,
''NA'' BENEFICIARY,
FBM.BILL_ID TRADE_REF_NO,
FBM.BILL_DATE BUSINESS_DATE,
SMH.VALUE_DATE VALUE_DATE,
SMH.TRAN_AMT TRAN_AMT,
FBM.OTHER_PARTY_NAME PARTY_NAME,
FBM.OTHER_PARTY_ADDR_1 PARTY_ADDRESS,
FBM.OTHER_PARTY_CNTRY_CODE COUNTRY_CODE,
SMH.CRNCY_CODE CURRENCY,
GAM.FORACID ACCOUNT_NO,
SMH.MT_NO MT_NO,
CORR_COLL_BANK_CODE BANK_CODE,
NOTL_CONV_RATE NOTL_CONV_RATE,
BILL_AMT_INR BILL_AMT_INR ,
FBM.RCRE_USER_ID PROCESSORS_ID,
FBM.LCHG_USER_ID AUTHORIZERS_ID,
''NA'' OPER_ACID,
FBM.BILL_AMT DIS_AMT, '||
''''|| G_Current_Business_Date || '''' || '
FEED_DATE,'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,
FBM.REG_TYPE, FBM.REG_SUB_TYPE
FROM FBM' || V_DB_Link || ' FBM, SMH' ||
V_DB_Link || ' SMH, '||G_GAM_Table||'' || V_DB_Link || ' GAM ,FBR' ||
V_DB_Link || ' FBR
WHERE FBM.BILL_ID =SMH.SENDER_REF_NUM
AND FBM.OPER_ACID= GAM.ACID(+)
AND FBM.REG_TYPE = FBR.REG_TYPE
AND FBM.REG_SUB_TYPE
in(''TT'',''CON'',''CBE'',''S'',''U'')
AND SMH.MT_NO=''103''
AND SMH.STATUS=''T''
AND FBM.ENTITY_CRE_FLG=''Y''
AND FBM.DEL_FLG =''N''
AND FBM.BILL_DATE =
'||''''||G_Current_Business_Date||'''
UNION
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
Bill_ID Contract_ID,
TRIM(GAM.CUST_ID) CUSTOMER_ID,
FBM.SOL_ID VISION_OUC,
case when FBM.SOL_ID=''016'' then ''07''
when FBM.SOL_ID=''17'' then ''08''
when FBM.SOL_ID=''79'' then ''09''
when FBM.SOL_ID=''18'' then '||''''||P_Le_Book||'''' ||'
when FBM.SOL_ID=''19'' then ''04''
when FBM.SOL_ID=''89'' then ''06''
when FBM.SOL_ID in (select substr(vision_ouc,9) from
ouc_codes where ouc_type=''40'') then
''02'' else ''NA'' end VISION_SBU,
GAM.ACCT_MGR_USER_ID ACCOUNT_OFFICER,
''BILLS'' DEAL_TYPE,
FBR.REG_TYPE_DESC DEAL_SUB_TYPE,
FBM.BILL_DATE START_DATE,
FBM.DUE_DATE MATURITY_DATE,
CASE WHEN FBM.DUE_DATE > SYSDATE THEN
TRUNC(FBM.DUE_DATE - SYSDATE) ELSE 0 END AS DAYS_REMAINING_MAT,
TRUNC(FBM.DUE_DATE - FBM.BILL_DATE) AS
DAYS_START_MAT,
''0'' PRINCIPAL_GL,
0 INTEREST_RATE,
0 COST_OF_FUNDS_RATE,
FBM.BILL_STAT CONTRACT_STATUS,
5 RECORD_TYPE,
53 SOURCE_ID,
''NA'' BENEFICIARY,
FBM.BILL_ID TRADE_REF_NO,
bill_date Business_Date,
Due_date Value_date,
BILL_AMT Tran_Amt,
Other_party_name Party_Name,
other_party_addr_1 Party_Address,
other_party_cntry_code Country_Code,
Bill_crncy_code CURRENCY,
foracid Account_No,
''0'' MT_NO,
Corr_Coll_Bank_code Bank_code,
Notl_conv_rate Notl_conv_rate,
BILL_AMT_INR BILL_AMT_INR,
fbm.rcre_user_id PROCESSORS_ID,
fbm.lchg_user_id AUTHORIZERS_ID,
''NA'' OPER_ACID,
FBM.BILL_AMT DIS_AMT, '||
''''|| G_Current_Business_Date || '''' || '
FEED_DATE,'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
FBM.LCHG_TIME DATE_LAST_MODIFIED,
FBM.RCRE_TIME DATE_CREATION,
FBM.REG_TYPE, FBM.REG_SUB_TYPE
FROM '||G_GAM_Table||'' || V_DB_Link || ' GAM ,fbm'
|| V_DB_Link || ' ,FBR' || V_DB_Link || ' FBR
WHERE FBM.reg_type in( ''OREM'',''IREM'')
AND oper_acid=Gam.acid(+)
AND FBM.REG_TYPE = FBR.REG_TYPE
AND fbm.del_flg=''N''
AND FBM.Bill_date =
'||''''||G_Current_Business_Date||'''');
END IF;

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount
['||TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables FBM,GAM Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACTS_SWIFT_FEED_STG!!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getContractSwiftStgData;

/*#######################################################################
##################################################
Name : getCustomerExtrasStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[CUSTOMERS_EXTRAS_FEED_STG].
Author : Mallikarjuna rao.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getCustomerExtrasStgData(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */
IF (P_Schema_Name IS NOT NULL) THEN
BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getCustomerExtrasStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP TABLE
'||V_Schema_Name||'CUSTOMERS_EXTRAS_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CUSTOMERS_EXTRAS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table


CUSTOMERS_EXTRAS_FEED_STG population......');

BEGIN

writeLogInfo('INSERT INTO CUSTOMERS_EXTRAS_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,NAT_LANG_NAME,
NAT_LANG_TITLE_CODE,PERM_ADDRESS_1,
PERM_ADDRESS_2,PERM_ADDRESS_3,
PERM_CITY_CODE,PERM_STATE_CODE,
PERM_COUNTRY_CODE,PERM_PIN_CODE,
COMM_ADDRESS_1,COMM_ADDRESS_2,
COMM_ADDRESS_3,COMM_CITY_CODE,
COMM_STATE_CODE,COMM_COUNTRY_CODE,
COMM_PIN_CODE,WORK_ADDRESS_1,
WORK_ADDRESS_2,WORK_ADDRESS_3,
WORK_CITY_CODE,WORK_STATE_CODE,
WORK_COUNTRY_CODE,WORK_PIN_CODE,
HOME_PHONE_1,HOME_PHONE_2,
BUSINESS_PHONE_1,BUSINESS_PHONE_2,
FAX_NUMBER,PERSONAL_EMAIL_ID,
DATE_OF_BIRTH,BUSINESS_EMAIL_ID,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,IB_ACTIVATED_FLAG,
PEP_CUST,JOB_CODES,
EMPLOYER_NAME,FATCA,
COUNTRY_RISK,CUST_CONST,CUST_OCCP_CODE,MINOR_MAJOR_DATE )
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
--
NVL(A.CUSTOMER_ID,NVL(B.CUSTOMER_ID,NVL(D.CUST_ID,C.CUSTOMER_ID)))
CUSTOMER_ID,
TRIM(D.CUST_ID) CUSTOMER_ID,
NVL(A.NATIVE_LANG_NAME,NVL(B.NATIVE_LANG_NAME,C.NATIVE_LANG_NAME))
NAT_LANG_NAME,

NVL(A.NAT_LANG_TITLE_CODE,NVL(B.NAT_LANG_TITLE_CODE,C.NAT_LANG_TITLE_CODE
)) NAT_LANG_TITLE_CODE,
NVL(D.CUST_PERM_ADDR1, PERM_ADDRESS_1)
PERM_ADDRESS_1,
NVL(D.CUST_PERM_ADDR2, PERM_ADDRESS_2)
PERM_ADDRESS_2,
PERM_ADDRESS_3,
NVL(D.CUST_PERM_CITY_CODE, PERM_CITY_CODE )
PERM_CITY_CODE,
NVL(D.CUST_PERM_STATE_CODE, PERM_STATE_CODE)
PERM_STATE_CODE,
NVL(
PERM_COUNTRY_CODE,D.CUST_PERM_CNTRY_CODE) PERM_COUNTRY_CODE,
NVL(D.CUST_PERM_PIN_CODE, PERM_PIN_CODE)
PERM_PIN_CODE,
NVL(D.CUST_COMU_ADDR1, COMM_ADDRESS_1)
COMM_ADDRESS_1,
NVL(D.CUST_COMU_ADDR2, COMM_ADDRESS_2)
COMM_ADDRESS_2,
COMM_ADDRESS_3,
NVL(D.CUST_COMU_CITY_CODE, COMM_CITY_CODE)
COMM_CITY_CODE,
NVL(D.CUST_COMU_STATE_CODE, COMM_STATE_CODE)
COMM_STATE_CODE,
NVL(COMM_COUNTRY_CODE,
D.CUST_COMU_CNTRY_CODE) COMM_COUNTRY_CODE,
NVL(D.CUST_COMU_PIN_CODE, COMM_PIN_CODE)
COMM_PIN_CODE,
WORK_ADDRESS_1,
WORK_ADDRESS_2,
WORK_ADDRESS_3,
WORK_CITY_CODE,
WORK_STATE_CODE,
WORK_COUNTRY_CODE,
WORK_PIN_CODE,
NVL(CUST_PERM_PHONE_NUM,B.PHONE_NUM1)
HOME_PHONE_1,
NVL(CUST_PERM_PHONE_NUM,B.PHONE_NUM2)
HOME_PHONE_2,
NVL(C.PHONE_NUM1,CUST_COMU_PHONE_NUM_1)
BUSINESS_PHONE_1,
NVL(C.PHONE_NUM2,CUST_COMU_PHONE_NUM_2)
BUSINESS_PHONE_2,

NVL(CUST_PERM_TELEX_NUM,NVL(CUST_COMU_TELEX_NUM,C.FAX_NUM1)) FAX_NUMBER,
NVL(CUST_PERM_EMAIL_ID,B.EMAIL_ID)
PERSONAL_EMAIL_ID,
DATE_OF_BIRTH,
C.EMAIL_ID BUSINESS_EMAIL_ID,'||
''''|| G_Current_Business_Date || '''' || '
FEED_DATE,'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,
CASE WHEN NVL(E.FREE_CODE_1,'''')=''IBANK''
OR NVL(E.FREE_CODE_1,'''')=''001'' THEN ''Y'' ELSE ''N'' END
IB_ACTIVATED_FLAG,
E.Free_Code_4 PEP_CUST,
E.Free_Code_5 JOB_CODES,
F.Ref_Desc EMPLOYER_NAME,
E.Free_Code_8 FATCA,
E.Free_Code_10 COUNTRY_RISK,
D.CUST_CONST CUST_CONST,
D.CUST_OCCP_CODE CUST_OCCP_CODE,
NVL(MINOR_ATTAIN_MAJOR_DATE ,''01-JAN-1900'')
MINOR_MAJOR_DATE
FROM (
SELECT trim(ADDR_B2KID) CUSTOMER_ID,
ADDRESS1 COMM_ADDRESS_1,
ADDRESS2 COMM_ADDRESS_2,
ADDRESS3 COMM_ADDRESS_3,
CITY_CODE COMM_CITY_CODE,
STATE_CODE COMM_STATE_CODE,
CNTRY_CODE COMM_COUNTRY_CODE,
PIN_CODE COMM_PIN_CODE,
PHONE_NUM1 PHONE_NUM1,
PHONE_NUM2 PHONE_NUM2,
FAX_NUM1 FAX_NUM1,
EMAIL_ID EMAIL_ID,
NATIVE_LANG_NAME NATIVE_LANG_NAME,
NAT_LANG_TITLE_CODE NAT_LANG_TITLE_CODE,
LCHG_TIME LCHG_TIME
FROM NMA' || V_DB_Link || '
WHERE ADDR_ID =''CUSTCOMMADD'') A,
(SELECT trim(ADDR_B2KID) CUSTOMER_ID,
ADDRESS1 PERM_ADDRESS_1,
ADDRESS2 PERM_ADDRESS_2,
ADDRESS3 PERM_ADDRESS_3,
CITY_CODE PERM_CITY_CODE,
STATE_CODE PERM_STATE_CODE,
CNTRY_CODE PERM_COUNTRY_CODE,
PIN_CODE PERM_PIN_CODE,
PHONE_NUM1 PHONE_NUM1,
PHONE_NUM2 PHONE_NUM2,
FAX_NUM1 FAX_NUM1,
EMAIL_ID EMAIL_ID,
NATIVE_LANG_NAME NATIVE_LANG_NAME,
NAT_LANG_TITLE_CODE NAT_LANG_TITLE_CODE,
LCHG_TIME LCHG_TIME
FROM NMA' || V_DB_Link || '
WHERE ADDR_ID =''CUSTPERMADD'' ) B,
(SELECT trim(ADDR_B2KID) CUSTOMER_ID,
ADDRESS1 WORK_ADDRESS_1,
ADDRESS2 WORK_ADDRESS_2,
ADDRESS3 WORK_ADDRESS_3,
CITY_CODE WORK_CITY_CODE,
STATE_CODE WORK_STATE_CODE,
CNTRY_CODE WORK_COUNTRY_CODE,
PIN_CODE WORK_PIN_CODE,
PHONE_NUM1 PHONE_NUM1,
PHONE_NUM2 PHONE_NUM2,
FAX_NUM1 FAX_NUM1,
EMAIL_ID EMAIL_ID,
NATIVE_LANG_NAME NATIVE_LANG_NAME,
NAT_LANG_TITLE_CODE NAT_LANG_TITLE_CODE,
LCHG_TIME LCHG_TIME
FROM NMA' || V_DB_Link || '
WHERE ADDR_ID =''CUSTEMPADD'') C,
CMG' || V_DB_Link || ' D,
CEM' || V_DB_Link || ' E,
(select TRIM(CUST_ID) CUST_ID
,MINOR_ATTAIN_MAJOR_DATE from CMT' || V_DB_Link || ') G,
(select ref_code, ref_desc from rct@finacleprod
where ref_rec_type=''C6'') F
WHERE trim(D.CUST_ID) =A.CUSTOMER_ID(+)
AND trim(D.CUST_ID) =B.CUSTOMER_ID(+)
AND trim(D.CUST_ID) =C.CUSTOMER_ID(+)
AND trim(D.CUST_ID) =trim(E.CUST_ID)
AND trim(E.Free_Code_6) =F.ref_code(+)
AND trim(D.CUST_ID) =G.CUST_ID(+)
AND (
NVL(A.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||')
>'||''''||G_LastBusinessDateRun||''''||' OR

NVL(B.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||')
>'||''''||G_LastBusinessDateRun||''''||' OR

NVL(D.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||')
>'||''''||G_LastBusinessDateRun||''''||' OR

NVL(C.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||')
>'||''''||G_LastBusinessDateRun||''''||')');

EXECUTE IMMEDIATE ('INSERT INTO CUSTOMERS_EXTRAS_FEED_STG


(
COUNTRY,LE_BOOK,
CUSTOMER_ID,NAT_LANG_NAME,
NAT_LANG_TITLE_CODE,PERM_ADDRESS_1,
PERM_ADDRESS_2,PERM_ADDRESS_3,
PERM_CITY_CODE,PERM_STATE_CODE,
PERM_COUNTRY_CODE,PERM_PIN_CODE,
COMM_ADDRESS_1,COMM_ADDRESS_2,
COMM_ADDRESS_3,COMM_CITY_CODE,
COMM_STATE_CODE,COMM_COUNTRY_CODE,
COMM_PIN_CODE,WORK_ADDRESS_1,
WORK_ADDRESS_2,WORK_ADDRESS_3,
WORK_CITY_CODE,WORK_STATE_CODE,
WORK_COUNTRY_CODE,WORK_PIN_CODE,
HOME_PHONE_1,HOME_PHONE_2,
BUSINESS_PHONE_1,BUSINESS_PHONE_2,
FAX_NUMBER,PERSONAL_EMAIL_ID,
DATE_OF_BIRTH,BUSINESS_EMAIL_ID,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,IB_ACTIVATED_FLAG,
PEP_CUST,JOB_CODES,
EMPLOYER_NAME,FATCA,
COUNTRY_RISK,CUST_CONST,CUST_OCCP_CODE,MINOR_MAJOR_DATE )
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(D.CUST_ID) CUSTOMER_ID,

NVL(A.NATIVE_LANG_NAME,NVL(B.NATIVE_LANG_NAME,C.NATIVE_LANG_NAME))
NAT_LANG_NAME,

NVL(A.NAT_LANG_TITLE_CODE,NVL(B.NAT_LANG_TITLE_CODE,C.NAT_LANG_TITLE_CODE
)) NAT_LANG_TITLE_CODE,
NVL(D.CUST_PERM_ADDR1, PERM_ADDRESS_1)
PERM_ADDRESS_1,
NVL(D.CUST_PERM_ADDR2, PERM_ADDRESS_2)
PERM_ADDRESS_2,
PERM_ADDRESS_3,
NVL(D.CUST_PERM_CITY_CODE, PERM_CITY_CODE )
PERM_CITY_CODE,
NVL(D.CUST_PERM_STATE_CODE, PERM_STATE_CODE)
PERM_STATE_CODE,
NVL(
PERM_COUNTRY_CODE,D.CUST_PERM_CNTRY_CODE) PERM_COUNTRY_CODE,
NVL(D.CUST_PERM_PIN_CODE, PERM_PIN_CODE)
PERM_PIN_CODE,
NVL(D.CUST_COMU_ADDR1, COMM_ADDRESS_1)
COMM_ADDRESS_1,
NVL(D.CUST_COMU_ADDR2, COMM_ADDRESS_2)
COMM_ADDRESS_2,
COMM_ADDRESS_3,
NVL(D.CUST_COMU_CITY_CODE, COMM_CITY_CODE)
COMM_CITY_CODE,
NVL(D.CUST_COMU_STATE_CODE, COMM_STATE_CODE)
COMM_STATE_CODE,
NVL(COMM_COUNTRY_CODE,
D.CUST_COMU_CNTRY_CODE) COMM_COUNTRY_CODE,
NVL(D.CUST_COMU_PIN_CODE, COMM_PIN_CODE)
COMM_PIN_CODE,
WORK_ADDRESS_1,
WORK_ADDRESS_2,
WORK_ADDRESS_3,
WORK_CITY_CODE,
WORK_STATE_CODE,
WORK_COUNTRY_CODE,
WORK_PIN_CODE,
NVL(CUST_PERM_PHONE_NUM,B.PHONE_NUM1)
HOME_PHONE_1,
NVL(CUST_PERM_PHONE_NUM,B.PHONE_NUM2)
HOME_PHONE_2,
NVL(C.PHONE_NUM1,CUST_COMU_PHONE_NUM_1)
BUSINESS_PHONE_1,
NVL(C.PHONE_NUM2,CUST_COMU_PHONE_NUM_2)
BUSINESS_PHONE_2,

NVL(CUST_PERM_TELEX_NUM,NVL(CUST_COMU_TELEX_NUM,C.FAX_NUM1)) FAX_NUMBER,
NVL(CUST_PERM_EMAIL_ID,B.EMAIL_ID)
PERSONAL_EMAIL_ID,
DATE_OF_BIRTH,
C.EMAIL_ID BUSINESS_EMAIL_ID,'||
''''|| G_Current_Business_Date || '''' || '
FEED_DATE,'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,
CASE WHEN NVL(E.FREE_CODE_1,'''')=''IBANK''
OR NVL(E.FREE_CODE_1,'''')=''001'' THEN ''Y'' ELSE ''N'' END
IB_ACTIVATED_FLAG,
E.Free_Code_4 PEP_CUST,
E.Free_Code_5 JOB_CODES,
F.Ref_Desc EMPLOYER_NAME,
E.Free_Code_8 FATCA,
E.Free_Code_10 COUNTRY_RISK,
D.CUST_CONST CUST_CONST,
D.CUST_OCCP_CODE CUST_OCCP_CODE,
NVL(MINOR_ATTAIN_MAJOR_DATE ,''01-JAN-1900'')
MINOR_MAJOR_DATE
FROM (
SELECT trim(ADDR_B2KID) CUSTOMER_ID,
ADDRESS1 COMM_ADDRESS_1,
ADDRESS2 COMM_ADDRESS_2,
ADDRESS3 COMM_ADDRESS_3,
CITY_CODE COMM_CITY_CODE,
STATE_CODE COMM_STATE_CODE,
CNTRY_CODE COMM_COUNTRY_CODE,
PIN_CODE COMM_PIN_CODE,
PHONE_NUM1 PHONE_NUM1,
PHONE_NUM2 PHONE_NUM2,
FAX_NUM1 FAX_NUM1,
EMAIL_ID EMAIL_ID,
NATIVE_LANG_NAME NATIVE_LANG_NAME,
NAT_LANG_TITLE_CODE NAT_LANG_TITLE_CODE,
LCHG_TIME LCHG_TIME
FROM NMA' || V_DB_Link || '
WHERE ADDR_ID =''CUSTCOMMADD'') A,
(SELECT trim(ADDR_B2KID) CUSTOMER_ID,
ADDRESS1 PERM_ADDRESS_1,
ADDRESS2 PERM_ADDRESS_2,
ADDRESS3 PERM_ADDRESS_3,
CITY_CODE PERM_CITY_CODE,
STATE_CODE PERM_STATE_CODE,
CNTRY_CODE PERM_COUNTRY_CODE,
PIN_CODE PERM_PIN_CODE,
PHONE_NUM1 PHONE_NUM1,
PHONE_NUM2 PHONE_NUM2,
FAX_NUM1 FAX_NUM1,
EMAIL_ID EMAIL_ID,
NATIVE_LANG_NAME NATIVE_LANG_NAME,
NAT_LANG_TITLE_CODE NAT_LANG_TITLE_CODE,
LCHG_TIME LCHG_TIME
FROM NMA' || V_DB_Link || '
WHERE ADDR_ID =''CUSTPERMADD'' ) B,
(SELECT trim(ADDR_B2KID) CUSTOMER_ID,
ADDRESS1 WORK_ADDRESS_1,
ADDRESS2 WORK_ADDRESS_2,
ADDRESS3 WORK_ADDRESS_3,
CITY_CODE WORK_CITY_CODE,
STATE_CODE WORK_STATE_CODE,
CNTRY_CODE WORK_COUNTRY_CODE,
PIN_CODE WORK_PIN_CODE,
PHONE_NUM1 PHONE_NUM1,
PHONE_NUM2 PHONE_NUM2,
FAX_NUM1 FAX_NUM1,
EMAIL_ID EMAIL_ID,
NATIVE_LANG_NAME NATIVE_LANG_NAME,
NAT_LANG_TITLE_CODE NAT_LANG_TITLE_CODE,
LCHG_TIME LCHG_TIME
FROM NMA' || V_DB_Link || '
WHERE ADDR_ID =''CUSTEMPADD'') C,
CMG' || V_DB_Link || ' D,
CEM' || V_DB_Link || ' E,
(select TRIM(CUST_ID) CUST_ID
,MINOR_ATTAIN_MAJOR_DATE from CMT' || V_DB_Link || ') G,
(select ref_code, ref_desc from rct@finacleprod
where ref_rec_type=''C6'') F
WHERE trim(D.CUST_ID) =A.CUSTOMER_ID(+)
AND trim(D.CUST_ID) =B.CUSTOMER_ID(+)
AND trim(D.CUST_ID) =C.CUSTOMER_ID(+)
AND trim(D.CUST_ID) =trim(E.CUST_ID)
AND trim(E.Free_Code_6) =F.ref_code(+)
AND trim(D.CUST_ID) =G.CUST_ID(+)
AND (
NVL(A.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||')
>'||''''||G_LastBusinessDateRun||''''||' OR

NVL(B.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||')
>'||''''||G_LastBusinessDateRun||''''||' OR

NVL(D.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||')
>'||''''||G_LastBusinessDateRun||''''||' OR
NVL(C.LCHG_TIME,'||''''||G_LastBusinessDateRun||'''' ||')
>'||''''||G_LastBusinessDateRun||''''||')');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables NMA,GAM Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CUSTOMERS_EXTRAS_FEED_STG!!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getCustomerExtrasStgData;

/*#######################################################################
##################################################
Name : getStaffIdStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[STAFF_ID_FEED_STG].
Author : Kanakarajan G
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit
Table Name Query Insert Update
Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getStaffIdStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getStaffIdStgData');
IF (retVal != 0 AND retVal != RERUN_EXIT)
THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'STAFF_ID_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop STAFF_ID_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table STAFF_ID_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO STAFF_ID_FEED_STG (


COUNTRY,LE_BOOK,
STAFF_ID,USER_ID ,
STAFF_NAME,GRADE_CODE,
ROLE_CODE,VISION_OUC,
EMP_STATUS,APPILCATION_STATUS,
FEED_DATE,PRODUCT,
RUN_STATUS,ROLE_ID,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T1.EMP_ID STAFF_ID,
T2.USER_ID USER_ID ,
NVL(NVL(T1.EMP_NAME,T1.EMP_SHORT_NAME),''NA'')
STAFF_NAME,
T1.EMP_DESIG GRADE_CODE,
T2.USER_WORK_CLASS ROLE_CODE,
T1.SOL_ID VISION_OUC,
T1.DEL_FLG EMP_STATUS,
T2.DEL_FLG APPILCATION_STATUS,
'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
T2.ROLE_ID ROLE_ID,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
GET' || V_DB_Link || ' T1,
UPR' || V_DB_Link || ' T2
WHERE
T1.EMP_ID = T2.USER_EMP_ID(+) ');

EXECUTE IMMEDIATE ('INSERT INTO STAFF_ID_FEED_STG (


COUNTRY,LE_BOOK,
STAFF_ID,USER_ID ,
STAFF_NAME,GRADE_CODE,
ROLE_CODE,VISION_OUC,
EMP_STATUS,APPILCATION_STATUS,
FEED_DATE,PRODUCT,
RUN_STATUS,ROLE_ID,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T1.EMP_ID STAFF_ID,
T2.USER_ID USER_ID ,
NVL(NVL(T1.EMP_NAME,T1.EMP_SHORT_NAME),''NA'')
STAFF_NAME,
T1.EMP_DESIG GRADE_CODE,
T2.USER_WORK_CLASS ROLE_CODE,
T1.SOL_ID VISION_OUC,
T1.DEL_FLG EMP_STATUS,
T2.DEL_FLG APPILCATION_STATUS,
'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
T2.ROLE_ID ROLE_ID,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
GET' || V_DB_Link || ' T1,
UPR' || V_DB_Link || ' T2
WHERE
T1.EMP_ID = T2.USER_EMP_ID(+) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GET/UPR Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate STAFF_ID_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getStaffIdStgData;

/*#######################################################################
##################################################
Name : getReversalTransStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[TRANSCNT_REV_FEED_STG].
Author : Kanakarajan G
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getReversalTransStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getReversalTransStgData');
IF (retVal != 0 AND retVal != RERUN_EXIT)
THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table TRANSCNT_REV_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO TRANSCNT_REV_FEED_STG (


COUNTRY,LE_BOOK,
TRAN_DATE,TRAN_ID,
PART_TRAN_SRL_NUM,REC_TYPE,
REVERSAL_FLG,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T1.TRAN_DATE ,
T1.TRAN_ID ,
T1.PART_TRAN_SRL_NUM ,
''NORMAL'' REC_TYPE,
T1.REVERSAL_FLG , '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
ATD' || V_DB_Link || ' T1
WHERE
T1.TRAN_DATE =
'||''''||G_Current_Business_Date||''''|| '
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T1.CONT_TRAN_DATE ,
T1.CONT_TRAN_ID ,
T1.CONT_PART_TRAN_SRL_NUM ,
''CONTRA'' REC_TYPE,
T1.REVERSAL_FLG , ' ||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
ATD' || V_DB_Link || ' T1
WHERE
T1.TRAN_DATE =
'||''''||G_Current_Business_Date||'''');

IF ( G_LastBusinessDateRun = '01-JAN-1900') THEN


EXECUTE IMMEDIATE ('INSERT INTO TRANSCNT_REV_FEED_STG
(
COUNTRY,LE_BOOK,
TRAN_DATE,TRAN_ID,
PART_TRAN_SRL_NUM,REC_TYPE,
REVERSAL_FLG,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T1.TRAN_DATE ,
T1.TRAN_ID ,
T1.PART_TRAN_SRL_NUM ,
''NORMAL'' REC_TYPE,
T1.REVERSAL_FLG , '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
ATD' || V_DB_Link || ' T1
WHERE
1 = 2 ' );
ELSIF (G_Manual_Flag = 'N') THEN
EXECUTE IMMEDIATE ('INSERT INTO TRANSCNT_REV_FEED_STG
(
COUNTRY,LE_BOOK,
TRAN_DATE,TRAN_ID,
PART_TRAN_SRL_NUM,REC_TYPE,
REVERSAL_FLG,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T1.TRAN_DATE ,
T1.TRAN_ID ,
T1.PART_TRAN_SRL_NUM ,
''NORMAL'' REC_TYPE,
T1.REVERSAL_FLG , '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
ATD' || V_DB_Link || ' T1
WHERE
T1.TRAN_DATE >
'||''''||G_LastBusinessDateRun||''''|| '
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T1.CONT_TRAN_DATE ,
T1.CONT_TRAN_ID ,
T1.CONT_PART_TRAN_SRL_NUM ,
''CONTRA'' REC_TYPE,
T1.REVERSAL_FLG , '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
ATD' || V_DB_Link || ' T1
WHERE
T1.TRAN_DATE >
'||''''||G_LastBusinessDateRun||'''' );

ELSIF (G_Manual_Flag = 'Y') THEN


EXECUTE IMMEDIATE ('INSERT INTO TRANSCNT_REV_FEED_STG
(
COUNTRY,LE_BOOK,
TRAN_DATE,TRAN_ID,
PART_TRAN_SRL_NUM,REC_TYPE,
REVERSAL_FLG,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T1.TRAN_DATE ,
T1.TRAN_ID ,
T1.PART_TRAN_SRL_NUM ,
''NORMAL'' REC_TYPE,
T1.REVERSAL_FLG , '||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
ATD' || V_DB_Link || ' T1
WHERE
T1.TRAN_DATE =
'||''''||G_Current_Business_Date||''''|| '
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T1.CONT_TRAN_DATE ,
T1.CONT_TRAN_ID ,
T1.CONT_PART_TRAN_SRL_NUM ,
''CONTRA'' REC_TYPE,
T1.REVERSAL_FLG , ' ||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
ATD' || V_DB_Link || ' T1
WHERE
T1.TRAN_DATE =
'||''''||G_Current_Business_Date||'''');

END IF;

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables ATD Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TRANSCNT_REV_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getReversalTransStgData;

/*#######################################################################
##################################################
Name : getReversalDiffTransStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[TRANSCNT_DIFF_TRAN_FEED_STG].
Author : Kanakarajan G
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getReversalDiffTransStgData(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getReversalDiffTransStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from


Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table


TRANSCNT_DIFF_TRAN_FEED_STG population......');

BEGIN
writeLogInfo('INSERT INTO TRANSCNT_DIFF_TRAN_FEED_STG (
COUNTRY,LE_BOOK,
TRAN_DATE ,TRAN_ID,PART_TRAN_SRL_NUM
,

CONTRA_TRAN_DATE,CONTRA_TRAN_ID,CONTRA_PART_TRAN_SRL_NUM,AMT_OFFSET,
FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRAN_DATE,TRAN_ID,PART_TRAN_SRL_NUM ,

CONTRA_TRAN_DATE,CONTRA_TRAN_ID,CONTRA_PART_TRAN_SRL_NUM,AMT_OFFSET,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
TCT' || V_DB_Link || ' T1
WHERE T1.CONTRA_TRAN_DATE =
'||''''||G_Current_Business_Date||'''' );

EXECUTE IMMEDIATE ('INSERT INTO


TRANSCNT_DIFF_TRAN_FEED_STG (
COUNTRY,LE_BOOK,
TRAN_DATE ,TRAN_ID,PART_TRAN_SRL_NUM
,

CONTRA_TRAN_DATE,CONTRA_TRAN_ID,CONTRA_PART_TRAN_SRL_NUM,AMT_OFFSET,
FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRAN_DATE,TRAN_ID,PART_TRAN_SRL_NUM ,

CONTRA_TRAN_DATE,CONTRA_TRAN_ID,CONTRA_PART_TRAN_SRL_NUM,AMT_OFFSET,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
TCT' || V_DB_Link || ' T1
WHERE T1.CONTRA_TRAN_DATE =
'||''''||G_Current_Business_Date||''' ' );

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables TCT Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TRANSCNT_DIFF_TRAN_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getReversalDiffTransStgData;

/*#######################################################################
##################################################
Name : getCrmStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[CRM_FLAGS_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getCrmStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getCrmStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'CRM_FLAGS_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CRM_FLAGS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CRM_FLAGS_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO CRM_FLAGS_FEED_STG (


COUNTRY,LE_BOOK,
ACCOUNT_NO,
SMS_ALERT_FLG,
EMAIL_ALERT_FLG ,
ESTATEMENT_ALERT_FLG,
UDIRECT_FLG ,
FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_CREATION,DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
CUSTOMER_NO ACCOUNT_NO,
CASE WHEN CUSTOMER_EMAIL IS NOT NULL THEN
''Y'' ELSE ''N'' END SMS_ALERT_FLG,
CASE WHEN CUSTOMER_MOBILE IS NOT NULL
THEN ''Y'' ELSE ''N'' END EMAIL_ALERT_FLG ,
NULL
ESTATEMENT_ALERT_FLG,
NULL
UDIRECT_FLG ,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM NAD' || V_DB_Link || ' WHERE
LCHG_TIME >= ' || '''' || G_LastBusinessDateRun || '''
UNION
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(FORACID)
ACCOUNT_NO,
NULL SMS_ALERT_FLG,
NULL EMAIL_ALERT_FLG,
''Y''
ESTATEMENT_ALERT_FLG,
NULL UDIRECT_FLG,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE
DATE_LAST_MODIFIED
FROM AST' || V_DB_Link || ' T1
,'||G_GAM_Table||'' || V_DB_Link || ' T2
WHERE T1.ACID =T2.ACID
AND PS_DESPATCH_MODE IS NOT NULL
AND T1.DEL_FLG =''N'' AND T1.LCHG_TIME >= ' || '''' ||
G_LastBusinessDateRun || ''' ');

EXECUTE IMMEDIATE ('INSERT INTO CRM_FLAGS_FEED_STG (


COUNTRY,LE_BOOK,
ACCOUNT_NO,
SMS_ALERT_FLG,
EMAIL_ALERT_FLG ,
ESTATEMENT_ALERT_FLG,
UDIRECT_FLG ,
FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_CREATION,DATE_LAST_MODIFIED)
/* SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
CUSTOMER_NO ACCOUNT_NO,
CASE WHEN CUSTOMER_EMAIL IS NOT NULL THEN
''Y'' ELSE ''N'' END SMS_ALERT_FLG,
CASE WHEN CUSTOMER_MOBILE IS NOT NULL
THEN ''Y'' ELSE ''N'' END EMAIL_ALERT_FLG ,
NULL
ESTATEMENT_ALERT_FLG,
NULL
UDIRECT_FLG ,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM NAD' || V_DB_Link || ' WHERE
LCHG_TIME >= ' || '''' || G_LastBusinessDateRun || '''
UNION*/
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(FORACID)
ACCOUNT_NO,
NULL SMS_ALERT_FLG,
NULL EMAIL_ALERT_FLG,
''Y''
ESTATEMENT_ALERT_FLG,
NULL UDIRECT_FLG,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE
DATE_LAST_MODIFIED
FROM AST' || V_DB_Link || ' T1
,'||G_GAM_Table||'' || V_DB_Link || ' T2
WHERE T1.ACID =T2.ACID
AND PS_DESPATCH_MODE IS NOT NULL
AND T1.DEL_FLG =''N'' AND T1.LCHG_TIME >= ' || '''' ||
G_LastBusinessDateRun || ''' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GET/UPR Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CRM_FLAGS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getCrmStgData;

/*#######################################################################
##################################################
Name : getContSingleScheStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[CONTRACT_SINGLE_SCHE_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/
FUNCTION getContSingleScheStgData(P_Country IN VARCHAR2,
P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getContSingleScheStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'CONTRACT_SINGLE_SCHE_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CONTRACT_SINGLE_SCHE_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table


CONTRACT_SINGLE_SCHE_FEED_STG population......');

BEGIN

writeLogInfo('INSERT INTO CONTRACT_SINGLE_SCHE_FEED_STG (


COUNTRY,LE_BOOK,
Contract_Id,Schedule_Date ,
Outstanding_Amount ,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_CREATION,DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T2.Foracid
Contract_Id,
T1.Flow_Start_Date
Schedule_Date ,
T1.Flow_Amt
Outstanding_Amount ,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N''
RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE
DATE_LAST_MODIFIED
FROM LRS' || V_DB_Link || ' T1 ,
'||G_GAM_Table||'' || V_DB_Link || ' T2
WHERE T1.ACID =T2.ACID
AND (T1.FLOW_START_DATE,T1.FLOW_AMT,shdl_num) =
(SELECT MAX(T3.FLOW_START_DATE),MAX(T3.FLOW_AMT),MAX(shdl_num)
FROM LRS' || V_DB_Link || ' T3 WHERE
T1.ACID = T3.ACID AND T3.FLOW_ID IN (''PRDEM'',''EIDEM''))
AND T1.FLOW_ID IN (''PRDEM'',''EIDEM'')
AND T1.DEL_FLG =''N''
AND T1.LCHG_TIME >= ' || '''' ||
G_LastBusinessDateRun || '''');

EXECUTE IMMEDIATE ('INSERT INTO


CONTRACT_SINGLE_SCHE_FEED_STG (
COUNTRY,LE_BOOK,
Contract_Id,Schedule_Date ,
Outstanding_Amount ,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_CREATION,DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T2.Foracid
Contract_Id,
T1.Flow_Start_Date
Schedule_Date ,
T1.Flow_Amt
Outstanding_Amount ,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N''
RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE
DATE_LAST_MODIFIED
FROM LRS' || V_DB_Link || ' T1 ,
'||G_GAM_Table||'' || V_DB_Link || ' T2
WHERE T1.ACID =T2.ACID
AND (T1.FLOW_START_DATE,T1.FLOW_AMT,shdl_num) =
(SELECT MAX(T3.FLOW_START_DATE),MAX(T3.FLOW_AMT),MAX(shdl_num)
FROM LRS' || V_DB_Link || ' T3 WHERE
T1.ACID = T3.ACID AND T3.FLOW_ID IN (''PRDEM'',''EIDEM''))
AND T1.FLOW_ID IN (''PRDEM'',''EIDEM'')
AND T1.DEL_FLG =''N''
AND T1.LCHG_TIME >= ' || '''' ||
G_LastBusinessDateRun || '''');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/LRS Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACT_SINGLE_SCHE_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getContSingleScheStgData;

/*#######################################################################
##################################################
Name : getsmsAlertStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[SMSALERT_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x
#########################################################################
################################################*/

FUNCTION getsmsAlertStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getsmsAlertStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'SMSALERT_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop SMSALERT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table SMSALERT_FEED_STG


population......');

BEGIN

EXECUTE IMMEDIATE ('INSERT INTO SMSALERT_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,SMS_ALERT_FLAG,
SMS_ALERT_PHONE_NO,EMAIL_ALERT_FLAG,
EMAIL_ID,VISION_OUC,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(UNIQUE_ID) CONTRACT_ID,
CHANNEL4 SMS_ALERT_FLAG,
trim(C_M_PHONE_NO) SMS_ALERT_PHONE_NO,
CHANNEL2 EMAIL_ALERT_FLAG,
trim(C_EMAIL_ID) EMAIL_ID,
REQUESTING_SOL VISION_OUC,
TRUNC(R_CRE_TIME) FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N''
RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE
DATE_LAST_MODIFIED
FROM e_alert' || V_DB_Link || '
WHERE DEL_FLG = ''N''
AND R_CRE_TIME > ' || '''' ||
G_LastBusinessDateRun || '''');

writeLogInfo('INSERT INTO SMSALERT_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,
SMS_ALERT_FLAG,
SMS_ALERT_PHONE_NO,
EMAIL_ALERT_FLAG,
EMAIL_ID,VISION_OUC,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
trim(UNIQUE_ID) CONTRACT_ID,
CHANNEL4 SMS_ALERT_FLAG,
trim(C_M_PHONE_NO) SMS_ALERT_PHONE_NO,
CHANNEL2 EMAIL_ALERT_FLAG,
trim(C_EMAIL_ID) EMAIL_ID,
REQUESTING_SOL VISION_OUC,
TRUNC(R_CRE_TIME) FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N''
RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE
DATE_LAST_MODIFIED
FROM e_alert' || V_DB_Link || '
WHERE DEL_FLG = ''N''
AND R_CRE_TIME > ' || '''' ||
G_LastBusinessDateRun || '''');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables E_ALERT Does not
exists/not accessiable !! Aborting execution.');
RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate SMSALERT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getsmsAlertStgData;

/*#######################################################################
##################################################
Name : getUnclearedChqStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[UNCLEARED_CHQ_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getUnclearedChqStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getUnclearedChqStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'UNCLEARED_CHQ_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop UNCLEARED_CHQ_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table UNCLEARED_CHQ_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO UNCLEARED_CHQ_FEED_STG (


COUNTRY,LE_BOOK,
ACCOUNT_NO,VISION_OUC,
TRAN_AMOUNT,CLG_ZONE_DATE,
VALUE_DATE,BANK_CODE,
INSTRMNT_ID,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_CREATION,DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
GAM.FORACID ACCOUNT_NO,
OCI.SOL_ID VISION_OUC,
OCI.INSTRMNT_AMT TRAN_AMOUNT,
OCI.CLG_ZONE_DATE,
OCI.VALUE_DATE,
OCI.BANK_CODE,
OCI.INSTRMNT_ID,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N''
RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE
DATE_LAST_MODIFIED
FROM '||G_GAM_Table||'' || V_DB_Link || '
GAM,OCI' || V_DB_Link || ',OCP' || V_DB_Link || '
WHERE OCP.CLG_ZONE_CODE = OCI.CLG_ZONE_CODE
AND OCP.CLG_ZONE_DATE = OCI.CLG_ZONE_DATE
AND OCP.SOL_ID = OCI.SOL_ID
AND OCP.SET_NUM = OCI.SET_NUM
AND OCP.ACID = GAM.ACID
AND OCP.STATUS_FLG IN (''G'',''R'')
AND OCP.TRAN_DATE <= ' || '''' ||
G_Current_Business_Date || '''
AND OCI.CLG_ZONE_DATE <= ' || '''' ||
G_Current_Business_Date || '''
AND OCI.VALUE_DATE > ' || '''' ||
G_Current_Business_Date|| '''');

EXECUTE IMMEDIATE ('INSERT INTO UNCLEARED_CHQ_FEED_STG (


COUNTRY,LE_BOOK,
ACCOUNT_NO,VISION_OUC,
TRAN_AMOUNT,CLG_ZONE_DATE,
VALUE_DATE,BANK_CODE,
INSTRMNT_ID,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_CREATION,DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
GAM.FORACID ACCOUNT_NO,
OCI.SOL_ID VISION_OUC,
OCI.INSTRMNT_AMT TRAN_AMOUNT,
OCI.CLG_ZONE_DATE,
OCI.VALUE_DATE,
OCI.BANK_CODE,
OCI.INSTRMNT_ID,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N''
RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE
DATE_LAST_MODIFIED
FROM '||G_GAM_Table||'' || V_DB_Link || '
GAM,OCI' || V_DB_Link || ',OCP' || V_DB_Link || '
WHERE OCP.CLG_ZONE_CODE = OCI.CLG_ZONE_CODE
AND OCP.CLG_ZONE_DATE = OCI.CLG_ZONE_DATE
AND OCP.SOL_ID = OCI.SOL_ID
AND OCP.SET_NUM = OCI.SET_NUM
AND OCP.ACID = GAM.ACID
AND OCP.STATUS_FLG IN (''G'',''R'')
AND OCP.TRAN_DATE <= ' || '''' ||
G_Current_Business_Date || '''
AND OCI.CLG_ZONE_DATE <= ' || '''' ||
G_Current_Business_Date || '''
AND OCI.VALUE_DATE > ' || '''' ||
G_Current_Business_Date|| '''');
G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM,OCI,OCP Does
not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate UNCLEARED_CHQ_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getUnclearedChqStgData;

/*#######################################################################
##################################################
Name : getEitIntAmountStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [EITINT_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getEitIntAmountStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getEitIntAmountStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table EITINT_FEED_STG


population......');

BEGIN

SELECT TO_CHAR(to_date(G_Current_Business_Date,'DD-MON-
RRRR'),'ddMMRRRR') INTO G_TableDate FROM dual;
SELECT TO_CHAR(to_date(G_LastBusinessDateRun,'DD-MON-
RRRR'),'ddMMRRRR') INTO G_LastTableDate FROM dual;

dbms_output.put_line('EIT TABLE :'||G_TableDate);


dbms_output.put_line('EIT TABLE :'||G_LastTableDate);

writeLogInfo('INSERT INTO EITINT_FEED_STG (


COUNTRY ,
LE_BOOK ,
CUSTOMER_ID ,
CONTRACT_ID ,
OFFICE_ACCOUNT ,
VISION_GL ,
VISION_OUC ,
COST_CENTER ,
PROFIT_CENTER ,
TRAN_CCY ,
TRAN_TYPE ,
TRAN_AMT ,
TRAN_DATE ,
VALUE_DATE ,
SCHM_TYPE ,
TRAN_ID ,
MIS_CURRENCY ,
FEED_DATE ,
PRODUCT ,
RUN_STATUS ,
DATE_LAST_MODIFIED ,
DATE_CREATION )
SELECT
'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T1.CUST_ID) CUSTOMER_ID,
T1.foracid CONTRACT_ID,
TRIM(T2.FORACID) OFFICE_ACCOUNT,
T2.GL_SUB_HEAD_CODE VISION_GL,
T2.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' TRAN_CCY,
case when substR(MAPPING_SOURCE_VISION_GL,1,1) =''6''
Then ''D'' Else ''C'' End TRAN_TYPE,
ABS(con_amt) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||' tran_date,
'||''''||G_Current_Business_Date ||''''||'
Value_Date,
T1.SCHM_TYPE,
TRAN_ID Tran_id,
T1.ACCT_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||' Feed_date,
'||''''||G_Feed_Name||''''||' Product,
''N'' Run_Status,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from (
SELECT gam.cust_id,foracid, acct_name,
acct_crncy_code, sol_id,gam.sanct_lim, clr_bal_amt,schm_type,
(SELECT LAST_BOOK_CR_TRAN_ID tRAN_ID FROM
EIT_'||G_TableDate||' e2
wHERE e2.entity_id = gam.acid
)tRAN_ID,
schm_code,
(SELECT int_pandl_bacid_cr
FROM gsp@finacleprod p
WHERE p.schm_code = gam.schm_code) AS
bacid,
(NVL ((SELECT e2.nrml_booked_amount_cr *
nvl(wash_rate,1)
FROM EIT_'||G_TableDate||' e2
WHERE e2.entity_id = gam.acid ), 0)
- NVL ((SELECT e1.nrml_booked_amount_cr *
nvl(wash_rate,1)
FROM EIT_'||G_LastTableDate||' e1
WHERE e1.entity_id = gam.acid), 0)) as
con_amt
FROM gam@finacleprod ,
TEMP_STD_CURRENCY_FEED_STG t2
WHERE gam.acct_crncy_code = CURRENCY(+)
And acct_ownership <> ''O''
Union ALL
SELECT gam.cust_id,foracid, acct_name,
acct_crncy_code, sol_id,gam.sanct_lim, clr_bal_amt,schm_type,
(SELECT LAST_BOOK_DR_TRAN_ID tRAN_ID
FROM EIT_'||G_TableDate||' e2
wHERE e2.entity_id = gam.acid
)tRAN_ID,
schm_code,
(SELECT int_pandl_bacid_Dr
FROM gsp@finacleprod p
WHERE p.schm_code = gam.schm_code)
AS Income_bacid_account,
(( NVL ((SELECT
e2.nrml_booked_amount_dr* nvl(wash_rate,1)
FROM EIT_'||G_TableDate||'
e2
WHERE e2.entity_id =
gam.acid), 0)
- NVL ((SELECT
e1.nrml_booked_amount_dr* nvl(wash_rate,1)
FROM
EIT_'||G_LastTableDate||' e1
WHERE e1.entity_id =
gam.acid), 0) ) +
( NVL ((SELECT e2.penal_booked_amount_dr
* nvl(wash_rate,1)
FROM EIT_'||G_TableDate||'
e2
WHERE e2.entity_id =
gam.acid), 0)
- NVL ((SELECT
e1.penal_booked_amount_dr * nvl(wash_rate,1)
FROM EIT_'||G_LastTableDate||'
e1
WHERE e1.entity_id = gam.acid),
0) )
)
as con_amt
FROM gam@finacleprod ,
TEMP_STD_CURRENCY_FEED_STG t2
WHERE gam.acct_crncy_code = CURRENCY(+)
And acct_ownership <> ''O''
) T1, Gam@finacleprod t2, (select * from
gl_translation where COUNTRY ='||''''||P_COUNTRY||'''' ||' AND LE_BOOK
=''99''
and
substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t7
where t1.Bacid =t2.bacid
and t1.acct_crncy_code =t2.ACCT_CRNCY_CODE
and t1.SOL_ID =t2.SOL_ID
and T2.gl_sub_head_code =t7.vision_gl
and con_amt != 0 ');

EXECUTE IMMEDIATE ('INSERT INTO EITINT_FEED_STG (


COUNTRY ,
LE_BOOK ,
CUSTOMER_ID ,
CONTRACT_ID ,
OFFICE_ACCOUNT ,
VISION_GL ,
VISION_OUC ,
COST_CENTER ,
PROFIT_CENTER ,
TRAN_CCY ,
TRAN_TYPE ,
TRAN_AMT ,
TRAN_DATE ,
VALUE_DATE ,
SCHM_TYPE ,
TRAN_ID ,
MIS_CURRENCY ,
FEED_DATE ,
PRODUCT ,
RUN_STATUS ,
DATE_LAST_MODIFIED ,
DATE_CREATION )
SELECT
'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T1.CUST_ID) CUSTOMER_ID,
T1.foracid CONTRACT_ID,
TRIM(T2.FORACID) OFFICE_ACCOUNT,
T2.GL_SUB_HEAD_CODE VISION_GL,
T2.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' TRAN_CCY,
case when substR(MAPPING_SOURCE_VISION_GL,1,1) =''6''
Then ''D'' Else ''C'' End TRAN_TYPE,
ABS(con_amt) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||' tran_date,
'||''''||G_Current_Business_Date ||''''||'
Value_Date,
T1.SCHM_TYPE,
TRAN_ID Tran_id,
T1.ACCT_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||' Feed_date,
'||''''||G_Feed_Name||''''||' Product,
''N'' Run_Status,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from (
SELECT gam.cust_id,foracid, acct_name,
acct_crncy_code, sol_id,gam.sanct_lim, clr_bal_amt,schm_type,
(SELECT LAST_BOOK_CR_TRAN_ID tRAN_ID FROM
EIT_'||G_TableDate||' e2
wHERE e2.entity_id = gam.acid
)tRAN_ID,
schm_code,
(SELECT int_pandl_bacid_cr
FROM gsp@finacleprod p
WHERE p.schm_code = gam.schm_code) AS
bacid,
(NVL ((SELECT e2.nrml_booked_amount_cr *
nvl(wash_rate,1)
FROM EIT_'||G_TableDate||' e2
WHERE e2.entity_id = gam.acid ), 0)
- NVL ((SELECT e1.nrml_booked_amount_cr *
nvl(wash_rate,1)
FROM EIT_'||G_LastTableDate||' e1
WHERE e1.entity_id = gam.acid), 0)) as
con_amt
FROM gam@finacleprod ,
TEMP_STD_CURRENCY_FEED_STG t2
WHERE gam.acct_crncy_code = CURRENCY(+)
And acct_ownership <> ''O''
Union ALL
SELECT gam.cust_id,foracid, acct_name,
acct_crncy_code, sol_id,gam.sanct_lim, clr_bal_amt,schm_type,
(SELECT LAST_BOOK_DR_TRAN_ID tRAN_ID
FROM EIT_'||G_TableDate||' e2
wHERE e2.entity_id = gam.acid
)tRAN_ID,
schm_code,
(SELECT int_pandl_bacid_Dr
FROM gsp@finacleprod p
WHERE p.schm_code = gam.schm_code)
AS Income_bacid_account,
(( NVL ((SELECT
e2.nrml_booked_amount_dr* nvl(wash_rate,1)
FROM EIT_'||G_TableDate||'
e2
WHERE e2.entity_id =
gam.acid), 0)
- NVL ((SELECT
e1.nrml_booked_amount_dr* nvl(wash_rate,1)
FROM
EIT_'||G_LastTableDate||' e1
WHERE e1.entity_id =
gam.acid), 0) ) +
( NVL ((SELECT e2.penal_booked_amount_dr
* nvl(wash_rate,1)
FROM EIT_'||G_TableDate||'
e2
WHERE e2.entity_id =
gam.acid), 0)
- NVL ((SELECT
e1.penal_booked_amount_dr * nvl(wash_rate,1)
FROM EIT_'||G_LastTableDate||'
e1
WHERE e1.entity_id = gam.acid),
0) )
)
as con_amt
FROM gam@finacleprod ,
TEMP_STD_CURRENCY_FEED_STG t2
WHERE gam.acct_crncy_code = CURRENCY(+)
And acct_ownership <> ''O''
) T1, Gam@finacleprod t2, (select * from
gl_translation where COUNTRY ='||''''||P_COUNTRY||'''' ||' AND LE_BOOK
=''99''
and
substr(mapping_source_vision_gl,1,1) in (''5'',''6'')) t7
where t1.Bacid =t2.bacid
and t1.acct_crncy_code =t2.ACCT_CRNCY_CODE
and t1.SOL_ID =t2.SOL_ID
and T2.gl_sub_head_code =t7.vision_gl
and con_amt != 0 ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM,OCI,OCP Does
not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate EITINT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getEitIntAmountStgData;

/*#######################################################################
##################################################
Name : getInterestHistoryStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[UNCLEARED_CHQ_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA
Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getInterestHistoryStgData(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getInterestHistoryStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table INT_VERSION_FEED_STG


population......');
/* Dump the required records into the staging table, to be
processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'INT_VERSION_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop INT_VERSION_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END; */

BEGIN
IF ( G_LastBusinessDateRun = '01-JAN-1900') THEN
EXECUTE IMMEDIATE ('INSERT INTO
INT_VERSION_FEED_STG (
COUNTRY,LE_BOOK,
CONTRACT_ID,EFFECTIVE_DATE,
INTEREST_RATE,FREQUENCE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
FORACID CONTRACT_ID,
START_DATE EFFECTIVE_DATE,
FULL_RATE INTEREST_RATE,
INT_FREQ_TYPE_DR FREQUENCE,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N''
RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM (
SELECT
FORACID,
MIN(A.START_DATE) START_DATE ,
MAX(A.END_DATE),FULL_RATE,
A.INT_VERSION,
INT_FREQ_TYPE_DR
FROM
IDT' || V_DB_Link || ' A,
GAM' || V_DB_Link || ' B,
EIT' || V_DB_Link || ' C
WHERE B.ACID = A.ENTITY_ID
AND B.ACID=C.ENTITY_ID
AND INTEREST_TYPE =''N''
AND SCHM_TYPE =''LAA''
AND SUPERCEDE_FLG=''N''
GROUP BY FORACID,FULL_RATE,
A.INT_VERSION,
INT_FREQ_TYPE_DR) ');
ELSE
EXECUTE IMMEDIATE ('INSERT INTO INT_VERSION_FEED_STG (
COUNTRY,LE_BOOK,
CONTRACT_ID,EFFECTIVE_DATE,
INTEREST_RATE,FREQUENCE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
FORACID CONTRACT_ID,
START_DATE EFFECTIVE_DATE,
FULL_RATE INTEREST_RATE,
INT_FREQ_TYPE_DR FREQUENCE,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM (
SELECT
FORACID,
MIN(A.START_DATE) START_DATE ,
MAX(A.END_DATE),FULL_RATE,
A.INT_VERSION,
INT_FREQ_TYPE_DR
FROM
IDT' || V_DB_Link || ' A,
GAM' || V_DB_Link || ' B,
EIT' || V_DB_Link || ' C
WHERE B.ACID = A.ENTITY_ID
AND B.ACID=C.ENTITY_ID
AND INTEREST_TYPE =''N''
AND SCHM_TYPE =''LAA''
AND SUPERCEDE_FLG=''N''
AND NVL(B.ACCT_CLS_FLG,''N'') =''N''
AND A.START_DATE
>'||''''||G_LastBusinessDateRun||'''
GROUP BY FORACID,FULL_RATE,
A.INT_VERSION,
INT_FREQ_TYPE_DR) ');
END IF;

writeLogInfo('INSERT INTO INT_VERSION_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,EFFECTIVE_DATE,
INTEREST_RATE,FREQUENCE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
FORACID CONTRACT_ID,
START_DATE EFFECTIVE_DATE,
FULL_RATE INTEREST_RATE,
INT_FREQ_TYPE_DR FREQUENCE,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM (
SELECT
FORACID,
MIN(A.START_DATE) START_DATE ,
MAX(A.END_DATE),FULL_RATE,
A.INT_VERSION,
INT_FREQ_TYPE_DR
FROM
IDT' || V_DB_Link || ' A,
GAM' || V_DB_Link || ' B,
EIT' || V_DB_Link || ' C
WHERE B.ACID = A.ENTITY_ID
AND B.ACID=C.ENTITY_ID
AND INTEREST_TYPE =''N''
AND SCHM_TYPE =''LAA''
AND SUPERCEDE_FLG=''N''
AND NVL(B.ACCT_CLS_FLG,''N'') =''N''
AND A.START_DATE
>'||''''||G_LastBusinessDateRun||'''
GROUP BY FORACID,FULL_RATE,
A.INT_VERSION,
INT_FREQ_TYPE_DR) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables TEMP_EIT,TEMP_IDT
Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate INT_VERSION_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getInterestHistoryStgData;

/*#######################################################################
##################################################
Name : getActualChargesStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[CHARGES_FEED_STG].
Author : Kanakarajan Ganesan
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getActualChargesStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getActualChargesStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'CHARGES_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CHARGES_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CHARGES_FEED_STG


population......');

BEGIN
EXECUTE IMMEDIATE ('INSERT INTO CHARGES_FEED_STG (
COUNTRY,LE_BOOK,
CONTRACT_ID,CURRENCY,
TRAN_DATE,TRAN_TYPE,
TRAN_AMOUNT,CHARGE_TYPE,
SCHEME_CODE,CHARGE_DESC,
CHARGE_FREQUENCY,SCHEME_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
E.FORACID CONTRACT_ID,
E.ACCT_CRNCY_CODE CURRENCY,
A.DMD_DATE TRAN_DATE,
CASE WHEN (A.DMD_AMT*-1) < 0 THEN ''D'' ELSE
''C'' END TRAN_TYPE,
A.DMD_AMT TRAN_AMOUNT,
D.CHARGE_TYPE CHARGE_TYPE,
E.SCHM_CODE SCHEME_CODE,
F.PTTM_EVENT_ID CHARGE_DESC,
D.ASSESS_FREQ_TYPE CHARGE_FREQUENCY,
E.SCHM_TYPE SCHEME_TYPE,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
LDT' || V_DB_Link || ' A,
LTD' || V_DB_Link || ' B,
TEMP_TXN_DTL_HTD C,
CHAT' || V_DB_Link || ' D,
GAM' || V_DB_Link || ' E,
PCT' || V_DB_Link || ' F
WHERE A.ACID=B.ACID
AND A.ACID=D.ACID
AND A.ACID=E.ACID
AND E.SCHM_CODE=F.SCHM_CODE
AND D.CHARGE_TYPE=F.CHARGE_TYPE
AND E.ACCT_CRNCY_CODE=F.CRNCY_CODE
AND B.TRAN_DATE=C.TRAN_DATE
AND B.TRAN_ID=C.TRAN_ID
AND B.PART_TRAN_SRL_NUM=C.PART_TRAN_SRL_NUM
AND A.DMD_DATE=B.TRAN_DATE
AND FLOW_ID = ''CHGDD''
AND SUBSTR(TRAN_PARTICULAR,28,5)=D.CHARGE_TYPE
AND A.DMD_DATE > '||''''||G_LastBusinessDateRun||'''
UNION ALL
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
C.FORACID CONTRACT_ID,
C.ACCT_CRNCY_CODE CURRENCY,
A.CHRG_TRAN_DATE TRAN_DATE,
CASE WHEN (A.ACTUAL_AMT_COLL*-1) < 0 THEN ''D''
ELSE ''C'' END TRAN_TYPE,
A.ACTUAL_AMT_COLL TRAN_AMOUNT,
A.EVENT_TYPE CHARGE_TYPE,
C.SCHM_CODE SCHEME_CODE,
A.EVENT_ID CHARGE_DESC,
B.ASSESS_FREQ_TYPE,
C.SCHM_TYPE SCHEME_TYPE,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
CXL' || V_DB_Link || ' A,
CHAT' || V_DB_Link || ' B,
GAM' || V_DB_Link || ' C
WHERE C.ACID=B.ACID AND B.ACID=A.TARGET_ACID
AND B.CHARGE_TYPE=A.EVENT_TYPE
AND A.ENTITY_CRE_FLG = ''Y''
AND A.CHRG_TRAN_DATE > ' || '''' ||
G_LastBusinessDateRun|| '''');

writeLogInfo('INSERT INTO CHARGES_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,CURRENCY,
TRAN_DATE,TRAN_TYPE,
TRAN_AMOUNT,CHARGE_TYPE,
SCHEME_CODE,CHARGE_DESC,
CHARGE_FREQUENCY,SCHEME_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
E.FORACID CONTRACT_ID,
E.ACCT_CRNCY_CODE CURRENCY,
A.DMD_DATE TRAN_DATE,
CASE WHEN (A.DMD_AMT*-1) < 0 THEN ''D'' ELSE
''C'' END TRAN_TYPE,
A.DMD_AMT TRAN_AMOUNT,
D.CHARGE_TYPE CHARGE_TYPE,
E.SCHM_CODE SCHEME_CODE,
F.PTTM_EVENT_ID CHARGE_DESC,
D.ASSESS_FREQ_TYPE CHARGE_FREQUENCY,
E.SCHM_TYPE SCHEME_TYPE,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
LDT' || V_DB_Link || ' A,
LTD' || V_DB_Link || ' B,
TEMP_TXN_DTL_HTD C,
CHAT' || V_DB_Link || ' D,
GAM' || V_DB_Link || ' E,
PCT' || V_DB_Link || ' F
WHERE A.ACID=B.ACID
AND A.ACID=D.ACID
AND A.ACID=E.ACID
AND E.SCHM_CODE=F.SCHM_CODE
AND D.CHARGE_TYPE=F.CHARGE_TYPE
AND E.ACCT_CRNCY_CODE=F.CRNCY_CODE
AND B.TRAN_DATE=C.TRAN_DATE
AND B.TRAN_ID=C.TRAN_ID
AND B.PART_TRAN_SRL_NUM=C.PART_TRAN_SRL_NUM
AND A.DMD_DATE=B.TRAN_DATE
AND FLOW_ID = ''CHGDD''
AND SUBSTR(TRAN_PARTICULAR,28,5)=D.CHARGE_TYPE
AND A.DMD_DATE > '||''''||G_LastBusinessDateRun||'''
UNION ALL
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
C.FORACID CONTRACT_ID,
C.ACCT_CRNCY_CODE CURRENCY,
A.CHRG_TRAN_DATE TRAN_DATE,
CASE WHEN (A.ACTUAL_AMT_COLL*-1) < 0 THEN ''D''
ELSE ''C'' END TRAN_TYPE,
A.ACTUAL_AMT_COLL TRAN_AMOUNT,
A.EVENT_TYPE CHARGE_TYPE,
C.SCHM_CODE SCHEME_CODE,
A.EVENT_ID CHARGE_DESC,
B.ASSESS_FREQ_TYPE,
C.SCHM_TYPE SCHEME_TYPE,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
CXL' || V_DB_Link || ' A,
CHAT' || V_DB_Link || ' B,
GAM' || V_DB_Link || ' C
WHERE C.ACID=B.ACID AND B.ACID=A.TARGET_ACID
AND B.CHARGE_TYPE=A.EVENT_TYPE
AND A.ENTITY_CRE_FLG = ''Y''
AND A.CHRG_TRAN_DATE > ' || '''' ||
G_LastBusinessDateRun|| '''');
G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM,etc Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CHARGES_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getActualChargesStgData;

/*#######################################################################
##################################################
Name : getExpectChargesStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[CHARGES_FEED_STG].
Author : Kanakarajan Ganesan
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/
FUNCTION getExpectChargesStgData(P_Country IN VARCHAR2, P_Le_Book IN
VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getExpectChargesStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'CHARGES_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CHARGES_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CHARGES_FEED_STG


population......');

BEGIN

EXECUTE IMMEDIATE ('INSERT INTO CHARGES_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,CURRENCY,
TRAN_DATE,TRAN_TYPE,
TRAN_AMOUNT,CHARGE_TYPE,
SCHEME_CODE,CHARGE_DESC,
CHARGE_FREQUENCY,SCHEME_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
E.FORACID CONTRACT_ID,
E.ACCT_CRNCY_CODE CURRENCY,
A.DMD_DATE TRAN_DATE,
CASE WHEN (A.DMD_AMT*-1) < 0 THEN ''D'' ELSE
''C'' END TRAN_TYPE,
A.DMD_AMT TRAN_AMOUNT,
D.CHARGE_TYPE CHARGE_TYPE,
E.SCHM_CODE SCHEME_CODE,
F.PTTM_EVENT_ID CHARGE_DESC,
D.ASSESS_FREQ_TYPE CHARGE_FREQUENCY,
E.SCHM_TYPE SCHEME_TYPE,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
LDT' || V_DB_Link || ' A,
LTD' || V_DB_Link || ' B,
TEMP_TXN_DTL_HTD C,
CHAT' || V_DB_Link || ' D,
GAM' || V_DB_Link || ' E,
PCT' || V_DB_Link || ' F
WHERE A.ACID=B.ACID
AND A.ACID=D.ACID
AND A.ACID=E.ACID
AND E.SCHM_CODE=F.SCHM_CODE
AND D.CHARGE_TYPE=F.CHARGE_TYPE
AND E.ACCT_CRNCY_CODE=F.CRNCY_CODE
AND B.TRAN_DATE=C.TRAN_DATE
AND B.TRAN_ID=C.TRAN_ID
AND B.PART_TRAN_SRL_NUM=C.PART_TRAN_SRL_NUM
AND A.DMD_DATE=B.TRAN_DATE
AND FLOW_ID = ''CHGDD''
AND SUBSTR(TRAN_PARTICULAR,28,5)=D.CHARGE_TYPE
AND A.DMD_DATE > '||''''||G_LastBusinessDateRun||'''
UNION ALL
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
C.FORACID CONTRACT_ID,
C.ACCT_CRNCY_CODE CURRENCY,
A.CHRG_TRAN_DATE TRAN_DATE,
CASE WHEN (A.ACTUAL_AMT_COLL*-1) < 0 THEN ''D''
ELSE ''C'' END TRAN_TYPE,
A.ACTUAL_AMT_COLL TRAN_AMOUNT,
A.EVENT_TYPE CHARGE_TYPE,
C.SCHM_CODE SCHEME_CODE,
A.EVENT_ID CHARGE_DESC,
B.ASSESS_FREQ_TYPE,
C.SCHM_TYPE SCHEME_TYPE,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
CXL' || V_DB_Link || ' A,
CHAT' || V_DB_Link || ' B,
GAM' || V_DB_Link || ' C
WHERE C.ACID=B.ACID AND B.ACID=A.TARGET_ACID
AND B.CHARGE_TYPE=A.EVENT_TYPE
AND A.ENTITY_CRE_FLG = ''Y''
AND A.CHRG_TRAN_DATE > ' || '''' ||
G_LastBusinessDateRun|| '''');

writeLogInfo('INSERT INTO CHARGES_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,CURRENCY,
TRAN_DATE,TRAN_TYPE,
TRAN_AMOUNT,CHARGE_TYPE,
SCHEME_CODE,CHARGE_DESC,
CHARGE_FREQUENCY,SCHEME_TYPE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
E.FORACID CONTRACT_ID,
E.ACCT_CRNCY_CODE CURRENCY,
A.DMD_DATE TRAN_DATE,
CASE WHEN (A.DMD_AMT*-1) < 0 THEN ''D'' ELSE
''C'' END TRAN_TYPE,
A.DMD_AMT TRAN_AMOUNT,
D.CHARGE_TYPE CHARGE_TYPE,
E.SCHM_CODE SCHEME_CODE,
F.PTTM_EVENT_ID CHARGE_DESC,
D.ASSESS_FREQ_TYPE CHARGE_FREQUENCY,
E.SCHM_TYPE SCHEME_TYPE,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
LDT' || V_DB_Link || ' A,
LTD' || V_DB_Link || ' B,
TEMP_TXN_DTL_HTD C,
CHAT' || V_DB_Link || ' D,
GAM' || V_DB_Link || ' E,
PCT' || V_DB_Link || ' F
WHERE A.ACID=B.ACID
AND A.ACID=D.ACID
AND A.ACID=E.ACID
AND E.SCHM_CODE=F.SCHM_CODE
AND D.CHARGE_TYPE=F.CHARGE_TYPE
AND E.ACCT_CRNCY_CODE=F.CRNCY_CODE
AND B.TRAN_DATE=C.TRAN_DATE
AND B.TRAN_ID=C.TRAN_ID
AND B.PART_TRAN_SRL_NUM=C.PART_TRAN_SRL_NUM
AND A.DMD_DATE=B.TRAN_DATE
AND FLOW_ID = ''CHGDD''
AND SUBSTR(TRAN_PARTICULAR,28,5)=D.CHARGE_TYPE
AND A.DMD_DATE > '||''''||G_LastBusinessDateRun||'''
UNION ALL
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
C.FORACID CONTRACT_ID,
C.ACCT_CRNCY_CODE CURRENCY,
A.CHRG_TRAN_DATE TRAN_DATE,
CASE WHEN (A.ACTUAL_AMT_COLL*-1) < 0 THEN ''D''
ELSE ''C'' END TRAN_TYPE,
A.ACTUAL_AMT_COLL TRAN_AMOUNT,
A.EVENT_TYPE CHARGE_TYPE,
C.SCHM_CODE SCHEME_CODE,
A.EVENT_ID CHARGE_DESC,
B.ASSESS_FREQ_TYPE,
C.SCHM_TYPE SCHEME_TYPE,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
CXL' || V_DB_Link || ' A,
CHAT' || V_DB_Link || ' B,
GAM' || V_DB_Link || ' C
WHERE C.ACID=B.ACID AND B.ACID=A.TARGET_ACID
AND B.CHARGE_TYPE=A.EVENT_TYPE
AND A.ENTITY_CRE_FLG = ''Y''
AND A.CHRG_TRAN_DATE > ' || '''' ||
G_LastBusinessDateRun|| '''');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM,etc Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CHARGES_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getExpectChargesStgData;

/*#######################################################################
##################################################
Name : getActualScheduleStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[CONTRACT_LDT_FEED_STG].
Author : Kanakarajan Ganesan
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/
FUNCTION getActualScheduleStgData(P_Country IN VARCHAR2,
P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getActualScheduleStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'CONTRACT_LDT_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CONTRACT_LDT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CONTRACT_LDT_FEED_STG


population......');

BEGIN

EXECUTE IMMEDIATE ('INSERT INTO CONTRACT_LDT_FEED_STG (


COUNTRY,LE_BOOK,
FORACID,ACID,
SHDL_NUM,DMD_FLOW_ID,
DMD_DATE,DMD_SRL_NUM,
DEL_FLG,LD_FREQ_TYPE,
DMD_EFF_DATE,DMD_AMT,
LAST_ADJ_DATE,TOT_ADJ_AMT,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T2.FORACID,
T1.ACID,
T1.SHDL_NUM,
T1.DMD_FLOW_ID,
T1.DMD_DATE,
T1.DMD_SRL_NUM,
T1.DEL_FLG,
T1.LD_FREQ_TYPE,
T1.DMD_EFF_DATE,
T1.DMD_AMT,
T1.LAST_ADJ_DATE,
T1.TOT_ADJ_AMT,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
LDT' || V_DB_Link || ' T1,
GAM' || V_DB_Link || ' T2
WHERE T1.ACID = T2.ACID
AND T1.LCHG_TIME > ' || '''' ||
G_LastBusinessDateRun|| '''');

writeLogInfo('INSERT INTO CONTRACT_LDT_FEED_STG (


COUNTRY,LE_BOOK,
FORACID,ACID,
SHDL_NUM,DMD_FLOW_ID,
DMD_DATE,DMD_SRL_NUM,
DEL_FLG,LD_FREQ_TYPE,
DMD_EFF_DATE,DMD_AMT,
LAST_ADJ_DATE,TOT_ADJ_AMT,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T2.FORACID,
T1.ACID,
T1.SHDL_NUM,
T1.DMD_FLOW_ID,
T1.DMD_DATE,
T1.DMD_SRL_NUM,
T1.DEL_FLG,
T1.LD_FREQ_TYPE,
T1.DMD_EFF_DATE,
T1.DMD_AMT,
T1.LAST_ADJ_DATE,
T1.TOT_ADJ_AMT,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
LDT' || V_DB_Link || ' T1,
GAM' || V_DB_Link || ' T2
WHERE T1.ACID = T2.ACID
AND T1.LCHG_TIME > ' || '''' ||
G_LastBusinessDateRun|| '''');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM,LDT Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACT_LDT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getActualScheduleStgData;

/*#######################################################################
##################################################
Name : getInterestBasisStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[INTEREST_BASIS_FEED_STG].
Author : Kanakarajan Ganesan
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/
FUNCTION getInterestBasisStgData(P_Country IN VARCHAR2, P_Le_Book
IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getInterestBasisStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'INTEREST_BASIS_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop INTEREST_BASIS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table INTEREST_BASIS_FEED_STG


population......');

BEGIN

EXECUTE IMMEDIATE ('INSERT INTO INTEREST_BASIS_FEED_STG (


COUNTRY,LE_BOOK,
SCHM_TYPE,SCHM_CODE,
CRNCY_CODE,DAYS_IN_YEAR_FOR_INT_DR,
LEAP_ADJ_DAYS_FOR_INT_DR,
DAYS_IN_YEAR_FOR_INT_CR,
LEAP_ADJ_DAYS_FOR_INT_CR,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
B.SCHM_TYPE,
A.SCHM_CODE,
A.CRNCY_CODE,
CASE WHEN B.SCHM_TYPE = ''TDA'' THEN
(SELECT COMPOUNDING_BASE FROM TID' ||
V_DB_Link || ' WHERE SCHM_CODE = A.SCHM_CODE)
ELSE
A.DAYS_IN_YEAR_FOR_INT_DR
END DAYS_IN_YEAR_FOR_INT_DR,
CASE WHEN (CASE WHEN B.SCHM_TYPE = ''TDA'' THEN
(SELECT COMPOUNDING_BASE FROM TID' ||
V_DB_Link || ' WHERE SCHM_CODE = A.SCHM_CODE)
ELSE
A.DAYS_IN_YEAR_FOR_INT_DR
END) = 360 THEN
''N''
WHEN B.SCHM_TYPE =''TDA'' AND NVL((SELECT
TD_366_BASE_IN_LEAP_YR FROM GCT' || V_DB_Link || '),''N'') = ''Y'' THEN
''Y''
WHEN A.LEAP_ADJ_DAYS_FOR_INT_DR = 1 THEN
''Y''
ELSE
''N''
END LEAP_ADJ_DAYS_FOR_INT_DR,
CASE WHEN B.SCHM_TYPE = ''TDA'' THEN
(SELECT COMPOUNDING_BASE FROM TID' ||
V_DB_Link || ' WHERE SCHM_CODE = A.SCHM_CODE)
ELSE
A.DAYS_IN_YEAR_FOR_INT_CR
END DAYS_IN_YEAR_FOR_INT_CR,
CASE WHEN (CASE WHEN B.SCHM_TYPE = ''TDA'' THEN
(SELECT COMPOUNDING_BASE FROM TID' ||
V_DB_Link || ' WHERE SCHM_CODE = A.SCHM_CODE)
ELSE
A.DAYS_IN_YEAR_FOR_INT_DR
END) = 360 THEN
''N''
WHEN B.SCHM_TYPE = ''TDA'' AND NVL((SELECT
TD_366_BASE_IN_LEAP_YR FROM GCT' || V_DB_Link || '),''N'') = ''Y'' THEN
''Y''
WHEN A.LEAP_ADJ_DAYS_FOR_INT_CR = 1 THEN
''Y''
ELSE
''N''
END LEAP_ADJ_DAYS_FOR_INT_CR,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
CSP' || V_DB_Link || ' A,
GSP' || V_DB_Link || ' B
WHERE
A.SCHM_CODE=B.SCHM_CODE
AND B.DEL_FLG=''N''
AND A.DEL_FLG=''N''
AND B.SCHM_TYPE IN
(''SBA'',''CAA'',''CCA'',''ODA'',''SBA'',''LAA'',''TDA'')
AND (A.LCHG_TIME > ' || '''' ||
G_LastBusinessDateRun|| ''' OR
A.SCHM_CODE IN (SELECT SCHM_CODE FROM TID' ||
V_DB_Link || ' WHERE LCHG_TIME > ' || '''' || G_LastBusinessDateRun||
'''))' );

writeLogInfo('INSERT INTO INTEREST_BASIS_FEED_STG (


COUNTRY,LE_BOOK,
SCHM_TYPE,SCHM_CODE,
CRNCY_CODE,DAYS_IN_YEAR_FOR_INT_DR,
LEAP_ADJ_DAYS_FOR_INT_DR,
DAYS_IN_YEAR_FOR_INT_CR,
LEAP_ADJ_DAYS_FOR_INT_CR,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
B.SCHM_TYPE,
A.SCHM_CODE,
A.CRNCY_CODE,
CASE WHEN B.SCHM_TYPE = ''TDA'' THEN
(SELECT COMPOUNDING_BASE FROM TID' ||
V_DB_Link || ' WHERE SCHM_CODE = A.SCHM_CODE)
ELSE
A.DAYS_IN_YEAR_FOR_INT_DR
END DAYS_IN_YEAR_FOR_INT_DR,
CASE WHEN (CASE WHEN B.SCHM_TYPE = ''TDA'' THEN
(SELECT COMPOUNDING_BASE FROM TID' ||
V_DB_Link || ' WHERE SCHM_CODE = A.SCHM_CODE)
ELSE
A.DAYS_IN_YEAR_FOR_INT_DR
END) = 360 THEN
''N''
WHEN B.SCHM_TYPE =''TDA'' AND NVL((SELECT
TD_366_BASE_IN_LEAP_YR FROM GCT' || V_DB_Link || '),''N'') = ''Y'' THEN
''Y''
WHEN A.LEAP_ADJ_DAYS_FOR_INT_DR = 1 THEN
''Y''
ELSE
''N''
END LEAP_ADJ_DAYS_FOR_INT_DR,
CASE WHEN B.SCHM_TYPE = ''TDA'' THEN
(SELECT COMPOUNDING_BASE FROM TID' ||
V_DB_Link || ' WHERE SCHM_CODE = A.SCHM_CODE)
ELSE
A.DAYS_IN_YEAR_FOR_INT_CR
END DAYS_IN_YEAR_FOR_INT_CR,
CASE WHEN (CASE WHEN B.SCHM_TYPE = ''TDA'' THEN
(SELECT COMPOUNDING_BASE FROM TID' ||
V_DB_Link || ' WHERE SCHM_CODE = A.SCHM_CODE)
ELSE
A.DAYS_IN_YEAR_FOR_INT_DR
END) = 360 THEN
''N''
WHEN B.SCHM_TYPE = ''TDA'' AND NVL((SELECT
TD_366_BASE_IN_LEAP_YR FROM GCT' || V_DB_Link || '),''N'') = ''Y'' THEN
''Y''
WHEN A.LEAP_ADJ_DAYS_FOR_INT_CR = 1 THEN
''Y''
ELSE
''N''
END LEAP_ADJ_DAYS_FOR_INT_CR,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
CSP' || V_DB_Link || ' A,
GSP' || V_DB_Link || ' B
WHERE
A.SCHM_CODE=B.SCHM_CODE
AND B.DEL_FLG=''N''
AND A.DEL_FLG=''N''
AND B.SCHM_TYPE IN
(''SBA'',''CAA'',''CCA'',''ODA'',''SBA'',''LAA'',''TDA'')
AND (A.LCHG_TIME > ' || '''' ||
G_LastBusinessDateRun|| ''' OR
A.SCHM_CODE IN (SELECT SCHM_CODE FROM TID' ||
V_DB_Link || ' WHERE LCHG_TIME > ' || '''' || G_LastBusinessDateRun||
'''))' );

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables CSP,GSP Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate INTEREST_BASIS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');
COMMIT;

RETURN SUCCESSFUL_EXIT;

END getInterestBasisStgData;

/*#######################################################################
##################################################
Name : getSmsSubPercentStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[SMS_SUBPCNT_FEED_STG].
Author : Kanakarajan Ganesan
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getSmsSubPercentStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;
IF (P_DBLink IS NOT NULL) THEN
BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getSmsSubPercentStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'SMS_SUBPCNT_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop SMS_SUBPCNT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END; */

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table SMS_SUBPCNT_FEED_STG


population......');

BEGIN

EXECUTE IMMEDIATE ('INSERT INTO SMS_SUBPCNT_FEED_STG As


COUNTRY,LE_BOOK,
SOL_ID,NO_OF_ACCT,
NO_OF_SUBSCRP,SUBSCRP_PCNT,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
SOL_ID,
COUNT(DISTINCT ACID) NO_OF_ACCT,
COUNT(DISTINCT UNIQUE_ID) NO_OF_SUBSCRP,
COUNT(DISTINCT UNIQUE_ID)*100/COUNT(DISTINCT
ACID) SUBSCRP_PCNT,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
GAM' || V_DB_Link || ' A,
E_ALERT' || V_DB_Link || ' B
WHERE A.FORACID = B.UNIQUE_ID(+)
AND NVL(B.DEL_FLG,''N'') =''N''
AND A.ENTITY_CRE_FLG=''Y''
AND ACCT_CLS_FLG= ''N''
AND SCHM_TYPE IN (''SBA'',''ODA'',''CAA'')
AND ACCT_OWNERSHIP!=''O''
GROUP BY
SOL_ID ');

writeLogInfo('INSERT INTO SMS_SUBPCNT_FEED_STG As


COUNTRY,LE_BOOK,
SOL_ID,NO_OF_ACCT,
NO_OF_SUBSCRP,SUBSCRP_PCNT,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
SOL_ID,
COUNT(DISTINCT ACID) NO_OF_ACCT,
COUNT(DISTINCT UNIQUE_ID) NO_OF_SUBSCRP,
COUNT(DISTINCT UNIQUE_ID)*100/COUNT(DISTINCT
ACID) SUBSCRP_PCNT,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
GAM' || V_DB_Link || ' A,
E_ALERT' || V_DB_Link || ' B
WHERE A.FORACID = B.UNIQUE_ID(+)
AND NVL(B.DEL_FLG,''N'') =''N''
AND A.ENTITY_CRE_FLG=''Y''
AND ACCT_CLS_FLG= ''N''
AND SCHM_TYPE IN (''SBA'',''ODA'',''CAA'')
AND ACCT_OWNERSHIP!=''O''
GROUP BY
SOL_ID ');
G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/E_ALERT Does
not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate SMS_SUBPCNT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;
END getSmsSubPercentStgData;

/*#######################################################################
##################################################
Name : getAtmPayoutStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[ATM_PAYOUT_FEED_STG].
Author : Kanakarajan Ganesan
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/
FUNCTION getAtmPayoutStgData(P_Country IN VARCHAR2, P_Le_Book IN
VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getAtmPayoutStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP Table
'||V_Schema_Name||'ATM_PAYOUT_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop ATM_PAYOUT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END; */

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table ATM_PAYOUT_FEED_STG


population......');

BEGIN
writeLogInfo('INSERT INTO ATM_PAYOUT_FEED_STG(
COUNTRY,LE_BOOK,
INIT_SOL_ID,ATM_PAYOUT,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
INIT_SOL_ID,
NVL(SUM(DECODE(PART_TRAN_TYPE,''C'',1,-1)),0)
ATM_PAYOUT,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
TEMP_TXN_DTL_HTD A,
'||G_GAM_Table||'' || V_DB_Link || ' B,
'||G_HTH_Table||'' || V_DB_Link || ' C
WHERE
B.ACID=A.ACID
AND C.TRAN_ID=A.TRAN_ID
AND C.TRAN_DATE=A.TRAN_DATE
AND A.PSTD_FLG=''Y''
AND A.TRAN_DATE >
'||''''||G_LastBusinessDateRun||'''
/* AND BACID IN (SELECT DISTINCT BACID FROM
'||G_GAM_Table||'' || V_DB_Link || ' WHERE SOL_ID = ''800'' AND
ACCT_CLS_FLG != ''Y'' AND DEL_FLG != ''Y'')*/
AND A.TRAN_TYPE= ''T''
AND ACCT_CRNCY_CODE=''MUR''
AND A.ENTRY_USER_ID=''CDCI''
GROUP BY INIT_SOL_ID ');

EXECUTE IMMEDIATE ('INSERT INTO ATM_PAYOUT_FEED_STG(


COUNTRY,LE_BOOK,
INIT_SOL_ID,ATM_PAYOUT,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_CREATION,
DATE_LAST_MODIFIED)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
INIT_SOL_ID,
NVL(SUM(DECODE(PART_TRAN_TYPE,''C'',1,-1)),0)
ATM_PAYOUT,'||
''''||G_Current_Business_Date ||''''||'
FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_CREATION,
SYSDATE DATE_LAST_MODIFIED
FROM
TEMP_TXN_DTL_HTD A,
'||G_GAM_Table||'' || V_DB_Link || ' B,
'||G_HTH_Table||'' || V_DB_Link || ' C
WHERE
B.ACID=A.ACID
AND C.TRAN_ID=A.TRAN_ID
AND C.TRAN_DATE=A.TRAN_DATE
AND A.PSTD_FLG=''Y''
AND A.TRAN_DATE >
'||''''||G_LastBusinessDateRun||'''
/* AND BACID IN (SELECT DISTINCT BACID FROM
'||G_GAM_Table||'' || V_DB_Link || ' WHERE SOL_ID = ''800'' AND
ACCT_CLS_FLG != ''Y'' AND DEL_FLG != ''Y'')*/
AND A.TRAN_TYPE= ''T''
AND ACCT_CRNCY_CODE=''MUR''
AND A.ENTRY_USER_ID=''CDCI''
GROUP BY INIT_SOL_ID ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/HTD/HTH Does
not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate ATM_PAYOUT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');
COMMIT;

RETURN SUCCESSFUL_EXIT;

END getAtmPayoutStgData;

/*#######################################################################
##################################################
Name : getFinacleCollStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [COLLATERALS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COLLATERALS_FEED_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getFinacleCollStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;
IF (P_DBLink IS NOT NULL) THEN
BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinacleCollStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table COLLATERALS_FEED_STG


population......');

BEGIN

writeLogInfo('Insert Into COLLATERALS_FEED_STG (


COUNTRY ,
LE_BOOK ,
CUSTOMER_ID ,
SECU_CODE ,
SECU_SRL_NUM ,
SECU_GROUP_CODE ,
SECU_CLASS_CODE ,
CRNCY_CODE ,
SECU_VALUE ,
INVOICE_VALUE ,
MARKET_VALUE ,
WRITTEN_DOWN_VALUE ,
APPORTIONED_VALUE ,
PURCHASE_DATE ,
RECEIVED_DATE ,
LODGE_DATE ,
WITHDRAW_FLG ,
WITHDRAW_DATE ,
DEL_FLG,
SECU_LINKAGE_TYPE,
FEED_DATE ,
PRODUCT ,
RUN_STATUS ,
DATE_LAST_MODIFIED ,
DATE_CREATION
)
select '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(CMG.cust_id) cust_id ,
SDR.Secu_Code ,
TRIM(SDR.Secu_Srl_Num) Secu_Srl_Num ,
SDR.Secu_Group_Code ,
SDR.Secu_Class_Code ,
SDR.Crncy_Code ,
SDR.Secu_Value ,
SDR.Invoice_Value ,
SDR.Market_Value ,
SDR.Written_Down_Value ,
SDR.Apportioned_Value ,
SDR.Purchase_Date ,
SDR.Received_Date ,
SDR.Lodge_Date ,
SDR.Withdraw_Flg ,
SDR.Withdraw_Date ,
SDR.DEL_FLG ,
SDR.SECU_LINKAGE_TYPE ,'||
''''||G_Current_Business_Date ||''''||' FEED_DATE,
'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SDR.LCHG_TIME DATE_LAST_MODIFIED,
SDR.RCRE_TIME DATE_CREATION
from
SDR' || V_DB_LINK ||' SDR,
CMG' || V_DB_LINK ||' CMG,
LLT' || V_DB_LINK ||' LLT,
GAM' || V_DB_LINK ||' GAM
where
LLT.LIMIT_B2KID(+)=SDR.LIMIT_B2KID
and CMG.CUST_ID=LLT.cust_id
and SDR.acid=GAM.acid(+)
and LLT.del_flg <> ''Y''
and SDR.del_flg <> ''Y''
and SDR.secu_linkage_type=''N''
AND SDR.SECU_VALUE != 0
AND SDR.LCHG_TIME >
'||''''||G_LastBusinessDateRun||'''
UNION
select '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(CMG.cust_id) cust_id ,
SDR.Secu_Code ,
TRIM(SDR.Secu_Srl_Num) Secu_Srl_Num ,
SDR.Secu_Group_Code ,
SDR.Secu_Class_Code ,
SDR.Crncy_Code ,
SDR.Secu_Value ,
SDR.Invoice_Value ,
SDR.Market_Value ,
SDR.Written_Down_Value ,
SDR.Apportioned_Value ,
SDR.Purchase_Date ,
SDR.Received_Date ,
SDR.Lodge_Date ,
SDR.Withdraw_Flg ,
SDR.Withdraw_Date ,
SDR.DEL_FLG ,
SDR.SECU_LINKAGE_TYPE ,'||
''''||G_Current_Business_Date ||''''||' FEED_DATE,
'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SDR.LCHG_TIME DATE_LAST_MODIFIED,
SDR.RCRE_TIME DATE_CREATION
from
sdr' || V_DB_Link || ' SDR,
cmg' || V_DB_Link || ' CMG,
gam' || V_DB_Link || ' GAM
where GAM.acid=SDR.acid
and CMG.CUST_ID=GAM.cust_id
and SDR.acid=GAM.acid(+)
and SDR.del_flg <> ''Y''
and SDR.secu_linkage_type<>''N''
AND SDR.SECU_VALUE != 0
AND SDR.LCHG_TIME >
'||''''||G_LastBusinessDateRun||'''');

EXECUTE IMMEDIATE ('Insert Into COLLATERALS_FEED_STG


(
COUNTRY ,
LE_BOOK ,
CUSTOMER_ID ,
SECU_CODE ,
SECU_SRL_NUM ,
SECU_GROUP_CODE ,
SECU_CLASS_CODE ,
CRNCY_CODE ,
SECU_VALUE ,
INVOICE_VALUE ,
MARKET_VALUE ,
WRITTEN_DOWN_VALUE ,
APPORTIONED_VALUE ,
PURCHASE_DATE ,
RECEIVED_DATE ,
LODGE_DATE ,
WITHDRAW_FLG ,
WITHDRAW_DATE ,
DEL_FLG,
SECU_LINKAGE_TYPE,
FEED_DATE ,
PRODUCT ,
RUN_STATUS ,
DATE_LAST_MODIFIED ,
DATE_CREATION
)
select '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(CMG.cust_id) cust_id ,
SDR.Secu_Code ,
TRIM(SDR.Secu_Srl_Num) Secu_Srl_Num ,
SDR.Secu_Group_Code ,
SDR.Secu_Class_Code ,
SDR.Crncy_Code ,
SDR.Secu_Value ,
SDR.Invoice_Value ,
SDR.Market_Value ,
SDR.Written_Down_Value ,
SDR.Apportioned_Value ,
SDR.Purchase_Date ,
SDR.Received_Date ,
SDR.Lodge_Date ,
SDR.Withdraw_Flg ,
SDR.Withdraw_Date ,
SDR.DEL_FLG ,
SDR.SECU_LINKAGE_TYPE ,'||
''''||G_Current_Business_Date ||''''||' FEED_DATE,
'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SDR.LCHG_TIME DATE_LAST_MODIFIED,
SDR.RCRE_TIME DATE_CREATION
from
SDR' || V_DB_LINK ||' SDR,
CMG' || V_DB_LINK ||' CMG,
LLT' || V_DB_LINK ||' LLT,
GAM' || V_DB_LINK ||' GAM
where
LLT.LIMIT_B2KID(+)=SDR.LIMIT_B2KID
and CMG.CUST_ID=LLT.cust_id
and SDR.acid=GAM.acid(+)
and LLT.del_flg <> ''Y''
and SDR.del_flg <> ''Y''
and SDR.secu_linkage_type=''N''
AND SDR.SECU_VALUE != 0
AND SDR.LCHG_TIME >
'''||G_LastBusinessDateRun||'''
UNION
select '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
TRIM(CMG.cust_id) cust_id ,
SDR.Secu_Code ,
TRIM(SDR.Secu_Srl_Num) Secu_Srl_Num ,
SDR.Secu_Group_Code ,
SDR.Secu_Class_Code ,
SDR.Crncy_Code ,
SDR.Secu_Value ,
SDR.Invoice_Value ,
SDR.Market_Value ,
SDR.Written_Down_Value ,
SDR.Apportioned_Value ,
SDR.Purchase_Date ,
SDR.Received_Date ,
SDR.Lodge_Date ,
SDR.Withdraw_Flg ,
SDR.Withdraw_Date ,
SDR.DEL_FLG ,
SDR.SECU_LINKAGE_TYPE ,'||
''''||G_Current_Business_Date ||''''||' FEED_DATE,
'||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SDR.LCHG_TIME DATE_LAST_MODIFIED,
SDR.RCRE_TIME DATE_CREATION
from
sdr' || V_DB_Link || ' SDR,
cmg' || V_DB_Link || ' CMG,
gam' || V_DB_Link || ' GAM
where GAM.acid=SDR.acid
and CMG.CUST_ID=GAM.cust_id
and SDR.acid=GAM.acid(+)
and SDR.del_flg <> ''Y''
and SDR.secu_linkage_type <>''N''
AND SDR.SECU_VALUE != 0
AND SDR.LCHG_TIME >
'''||G_LastBusinessDateRun||'''');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GAM/SDR/IIL/CMG
Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate COLLATERALS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getFinacleCollStgData;

/*#######################################################################
##################################################
Name : getFinacleIntRecPaybleStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table [COLLATERALS].
Author : Vision Team
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COLLATERALS_FEED_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getFinacleIntRecPaybleStgData(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getFinacleIntRecPaybleStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table ENRICHMENT_FEED_STG


population For Int Receivable .....');

BEGIN

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,TRAN_CCY,
TRAN_TYPE,TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE,MIS_CURRENCY,
FEED_DATE,PRODUCT,

RUN_STATUS,DATE_LAST_MODIFIED,DATE_CREATION)
SELECT
'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T2.FORACID OFFICE_ACCOUNT,
T2.GL_SUB_HEAD_CODE VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
T1.TRAN_CRNCY_CODE TRAN_CCY,
CASE WHEN SUM(CASE WHEN T1.PART_TRAN_TYPE
=''D'' THEN T1.TRAN_AMT *-1 ELSE T1.TRAN_AMT END) <0 THEN ''D'' ELSE
''C'' END TRAN_TYPE,
ABS(SUM(CASE WHEN T1.PART_TRAN_TYPE =''D''
THEN T1.TRAN_AMT *-1 ELSE T1.TRAN_AMT END)) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
T3.SCHM_TYPE,
T1.TRAN_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
ACPART' || V_DB_Link || ' T1,GAM' ||
V_DB_Link || ' T2,GAM' || V_DB_Link || ' T3 ,CEM' || V_DB_Link || ' T4
WHERE t1.PARTITIONED_ACID =T2.ACID
AND T1.B2K_ID =T3.ACID
AND T3.CUST_ID =T4.CUST_ID(+)
AND TRAN_DATE ='||''''||G_Current_Business_Date
||''''||'
AND T2.GL_SUB_HEAD_CODE !=''24030''
AND T2.SOL_ID NOT IN (''999'',''800'')
GROUP BY
TRIM(T3.CUST_ID),T3.FORACID,
T2.FORACID,T2.GL_SUB_HEAD_CODE,
T1.SOL_ID,NVL(T4.FREE_CODE_2,''NA''),
T1.TRAN_CRNCY_CODE,T3.SCHM_TYPE
HAVING SUM(CASE WHEN T1.PART_TRAN_TYPE =''D''
THEN T1.TRAN_AMT *-1 ELSE T1.TRAN_AMT END) !=0');

IF ( G_LastBusinessDateRun = '01-JAN-1900') THEN


EXECUTE IMMEDIATE ('INSERT INTO ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,TRAN_CCY,
TRAN_TYPE,TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE,MIS_CURRENCY,
FEED_DATE,PRODUCT,

RUN_STATUS,DATE_LAST_MODIFIED,DATE_CREATION)
SELECT
'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T2.FORACID OFFICE_ACCOUNT,
T2.GL_SUB_HEAD_CODE VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
T1.TRAN_CRNCY_CODE TRAN_CCY,
CASE WHEN SUM(CASE WHEN T1.PART_TRAN_TYPE
=''D'' THEN T1.TRAN_AMT *-1 ELSE T1.TRAN_AMT END) <0 THEN ''D'' ELSE
''C'' END TRAN_TYPE,
ABS(SUM(CASE WHEN T1.PART_TRAN_TYPE =''D''
THEN T1.TRAN_AMT *-1 ELSE T1.TRAN_AMT END)) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
T3.SCHM_TYPE,
T1.TRAN_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
ACPART' || V_DB_Link || ' T1,GAM' ||
V_DB_Link || ' T2,GAM' || V_DB_Link || ' T3 ,CEM' || V_DB_Link || ' T4
WHERE t1.PARTITIONED_ACID =T2.ACID
AND T1.B2K_ID =T3.ACID
AND T3.CUST_ID =T4.CUST_ID(+)
AND TRAN_DATE <='||''''||G_Current_Business_Date
||''''||'
AND T2.GL_SUB_HEAD_CODE !=''24030''
AND T2.SOL_ID NOT IN (''999'',''800'')
GROUP BY
TRIM(T3.CUST_ID),T3.FORACID,
T2.FORACID,T2.GL_SUB_HEAD_CODE,
T1.SOL_ID,NVL(T4.FREE_CODE_2,''NA''),
T1.TRAN_CRNCY_CODE,T3.SCHM_TYPE
HAVING SUM(CASE WHEN T1.PART_TRAN_TYPE =''D''
THEN T1.TRAN_AMT *-1 ELSE T1.TRAN_AMT END) !=0');
ELSE
EXECUTE IMMEDIATE ('INSERT INTO ENRICHMENT_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,TRAN_CCY,
TRAN_TYPE,TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE,MIS_CURRENCY,
FEED_DATE,PRODUCT,

RUN_STATUS,DATE_LAST_MODIFIED,DATE_CREATION)
SELECT
'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
TRIM(T3.CUST_ID) CUSTOMER_ID,
T3.FORACID CONTRACT_ID,
T2.FORACID OFFICE_ACCOUNT,
T2.GL_SUB_HEAD_CODE VISION_GL,
T1.SOL_ID VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
T1.TRAN_CRNCY_CODE TRAN_CCY,
CASE WHEN SUM(CASE WHEN T1.PART_TRAN_TYPE
=''D'' THEN T1.TRAN_AMT *-1 ELSE T1.TRAN_AMT END) <0 THEN ''D'' ELSE
''C'' END TRAN_TYPE,
ABS(SUM(CASE WHEN T1.PART_TRAN_TYPE =''D''
THEN T1.TRAN_AMT *-1 ELSE T1.TRAN_AMT END)) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
T3.SCHM_TYPE,
T1.TRAN_CRNCY_CODE MIS_CURRENCY,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
ACPART' || V_DB_Link || ' T1,GAM' ||
V_DB_Link || ' T2,GAM' || V_DB_Link || ' T3 ,CEM' || V_DB_Link || ' T4
WHERE t1.PARTITIONED_ACID =T2.ACID
AND T1.B2K_ID =T3.ACID
AND T3.CUST_ID =T4.CUST_ID(+)
AND TRAN_DATE ='||''''||G_Current_Business_Date
||''''||'
AND T2.GL_SUB_HEAD_CODE !=''24030''
AND T2.SOL_ID NOT IN (''999'',''800'')
GROUP BY
TRIM(T3.CUST_ID),T3.FORACID,
T2.FORACID,T2.GL_SUB_HEAD_CODE,
T1.SOL_ID,NVL(T4.FREE_CODE_2,''NA''),
T1.TRAN_CRNCY_CODE,T3.SCHM_TYPE
HAVING SUM(CASE WHEN T1.PART_TRAN_TYPE =''D''
THEN T1.TRAN_AMT *-1 ELSE T1.TRAN_AMT END) !=0');
END IF;

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables ACPART/GAM/CEM
Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate ENRICHMENT_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;
RETURN SUCCESSFUL_EXIT;

END getFinacleIntRecPaybleStgData;

/*#######################################################################
##################################################
Name : getTreasCustStgData
Description : Procedure to upload daily Treasury
Customer Details data to Vision staging table and from staging
table to the main target table
[CUSTOMERS_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getTreasCustStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getTreasCustStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');

BEGIN
writeLogInfo('DROP Table TRSRY_GL_TRANS PURGE ');

EXECUTE IMMEDIATE ('DROP Table TRSRY_GL_TRANS PURGE ');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The temp_SPOT table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised trying
to Drop TRSRY_GL_TRANS !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN
Migrated_Trsy_Table:=NULL;
SELECT VALUE INTO Migrated_Trsy_Table FROM
VISION_VARIABLES WHERE VARIABLE ='TREASURY_MIGRA_DEALS' ;

writeLogInfo('CREATE TABLE TRSRY_GL_TRANS AS


SELECT
GL.DEALNUMBER,
GL.ACCNUM,
GL.VALUEDATE,
TRUNC(GL.TRANTIME) TRANTIME,
GL.CCYCDE,
GL.LBS_ACCOUNT_ID,
GL.LBS_ACCOUNT_BRANCH,
GL.DEALTYPE,
GL.DEALSUBTYPE,
GL.LEDGER ,
GL.EVENT,
GL.DRCR,
GL.AMOUNT,
GL.LBS_AMOUNT
FROM D10113.GL_TRANS@TREASURYPROD GL
WHERE TRUNC(TRANTIME) <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')');

EXECUTE IMMEDIATE ('CREATE TABLE TRSRY_GL_TRANS AS


SELECT
GL.DEALNUMBER,
GL.ACCNUM,
GL.VALUEDATE,
TRUNC(GL.TRANTIME) TRANTIME,
GL.CCYCDE,
GL.LBS_ACCOUNT_ID,
GL.LBS_ACCOUNT_BRANCH,
GL.DEALTYPE,
GL.DEALSUBTYPE,
GL.LEDGER ,
GL.EVENT,
GL.DRCR,
GL.AMOUNT,
GL.LBS_AMOUNT
FROM D10113.GL_TRANS@TREASURYPROD GL
WHERE TRUNC(TRANTIME) <=
TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')');

EXCEPTION
WHEN NO_DATA_FOUND THEN
writeLogInfo('The Source tables
Maintenance<TREASURY_MIGRA_DEALS> Not Found in Vision Variables !!
Aborting execution.');
RETURN ERRONEOUS_EXIT;
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GL_TRANS_ALL
Does not exists/not accessiable !! Aborting execution.');
RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CUSTOMERS_FEED_STG !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN
writeLogInfo('Create INDEX TRSRY_GL_TRANS_IDX ON
TRSRY_GL_TRANS (trantime)');

EXECUTE IMMEDIATE ('Create INDEX TRSRY_GL_TRANS_IDX ON


TRSRY_GL_TRANS (trantime)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create Index on TRSRY_GL_TRANS (trantime) !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN
writeLogInfo('Create INDEX TRSRY_GL_TRANS_IDX1 ON
TRSRY_GL_TRANS (LEDGER)');

EXECUTE IMMEDIATE ('Create INDEX TRSRY_GL_TRANS_IDX1 ON


TRSRY_GL_TRANS (LEDGER)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');
EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create Index on TRSRY_GL_TRANS (LEDGER) !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN
writeLogInfo('Create INDEX TRSRY_GL_TRANS_IDX2 ON
TRSRY_GL_TRANS (DEALNUMBER)');

EXECUTE IMMEDIATE ('Create INDEX TRSRY_GL_TRANS_IDX2 ON


TRSRY_GL_TRANS (DEALNUMBER)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create Index on TRSRY_GL_TRANS (DEALNUMBER) !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

begin

writeLogInfo('DROP Table temp_spot PURGE ');

EXECUTE IMMEDIATE ('DROP Table temp_spot PURGE ');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The temp_SPOT table has already
been dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop temp_SPOT !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

begin

writeErrLogInfo ('CREATE table temp_SPOT AS


SELECT
DEALNUMBER,DEAL_NUM,TRANTIME,DEALTYPE,DEAL_STATE,CPTY_FBO_ID_NUM,DEALER_C
ODE,VALUEDATE,ccy_one_amount_value,SALES_SPREAD_RATE,

CCYCDE,CONTRACT_RATE,END_DATE,DEAL_DATE,START_DATE,NVL(GL.DEALSUBTYPE,''M
IGRA'') DEALSUBTYPE,DEAL_TYPE,
Case when LBS_account_Branch=''NONE''
then substr(lbs_account_id,1,3) else lbs_account_branch end
ACCOUNT_BRANCH,
DEAL_IDENTIFIER,ledger,

FX_TYPE,FWD_CONTRACT_RATE,CURRENCY_PAIR,
CCY_ONE_AMOUNT_CCY ,
CCY_TWO_AMOUNT_CCY ,
FX_BUY_SELL,
CCY_TWO_AMOUNT_VALUE
FROM TRSRY_GL_TRANS
GL,D10113.TT_FX@TREASURYPROD REPO WHERE GL.DEALNUMBER =REPO.DEAL_NUM
AND TRUNC(TRANTIME)
=TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'') ');

EXECUTE IMMEDIATE ('CREATE table temp_SPOT AS


SELECT
DEALNUMBER,DEAL_NUM,TRANTIME,DEALTYPE,DEAL_STATE,CPTY_FBO_ID_NUM,DEALER_C
ODE,VALUEDATE,ccy_one_amount_value,SALES_SPREAD_RATE,

CCYCDE,CONTRACT_RATE,END_DATE,DEAL_DATE,START_DATE,NVL(GL.DEALSUBTYPE,''M
IGRA'') DEALSUBTYPE,DEAL_TYPE,
Case when LBS_account_Branch=''NONE''
then substr(lbs_account_id,1,3) else lbs_account_branch end
ACCOUNT_BRANCH,
DEAL_IDENTIFIER,ledger,

FX_TYPE,FWD_CONTRACT_RATE,CURRENCY_PAIR,
CCY_ONE_AMOUNT_CCY ,
CCY_TWO_AMOUNT_CCY ,
FX_BUY_SELL,
CCY_TWO_AMOUNT_VALUE
FROM TRSRY_GL_TRANS
GL,D10113.TT_FX@TREASURYPROD REPO WHERE GL.DEALNUMBER =REPO.DEAL_NUM
AND TRUNC(TRANTIME)
=TO_DATE('''||G_Current_Business_Date ||''',''DD-MON-RRRR'') ');
EXCEPTION
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception raised
trying to Create temp_SPOT !!');
RETURN ERRONEOUS_EXIT;

END;

begin

writeLogInfo('DROP Table TEMP_SPOTFX PURGE ');

EXECUTE IMMEDIATE ('DROP Table TEMP_SPOTFX PURGE ');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The TEMP_SPOTFX table has already
been dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TEMP_SPOTFX !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

begin

writeErrLogInfo('CREATE table TEMP_SPOTFX AS SELECT DISTINCT


'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.DEAL_IDENTIFIER,
DEAL_TYPE DEAL_TYPE,
NVL(DEALSUBTYPE,''MIGRA'') DEAL_SUB_TYPE,
START_DATE START_DATE,
NVL(ACCOUNT_BRANCH,''019'') VISION_OUC,
82 SOURCE_ID,
6 RECORD_TYPE,
''0'' PRINCIPAL_GL,
CCYCDE MIS_CURRENCY,
0 ISSUE_ID,
0 QTY_TRADED,
FX_BUY_SELL BUY_SELL_IND,
0 PRICE,
GL.SALES_SPREAD_RATE YIELD,
NVL(SECDFN.ISSUE_DATE,''01-JAN-1900'') ISSUE_DATE,
GL.DEAL_DATE DEAL_DATE,
NVL(END_DATE,START_DATE) MATURITY_DATE,
NVL(END_DATE,START_DATE) SETTLEMENT_DATE,
0 SETTLEMENT_VALUE,
CONTRACT_RATE INTREST_RATE,
CCY_ONE_AMOUNT_VALUE PRINCIPAL_AMOUNT,
0 DAYS_START_MAT,
0 DAYS_REMAINING_MAT,
CONTRACT_RATE INTEREST_RATE,
DEAL_STATE CONTRACT_STATUS,
CCYCDE TRADE_CCY,
VALUEDATE VALUEDATE,
ISSUE_PRICE ISSUE_PRICE,
ISSUE_CCY ISSUE_CCY,
SECDFN.FBO_ID_TYPE Issue_Type,
SUBSTR(SECDFN.NAME,1,20) Issue_Short_Name,
SECDFN.NAME Issue_Name,
ISSUER_FBO_ID_NUM Issuer_Code,
ISSUANCE_DATA_GUARANTOR Guarantor,
ACC_COUPON_METHOD Coupon_Index,
YIELD_BASIS YIELD_BASIS,
''NA'' BENEFICIARY,
DEALER_CODE TRADER_ID,
0 Number_Of_Units,
NVL(LB_ACCT_ID,'' '') Current_Account_No,
'||''''||G_Current_Business_Date ||''''||' FEED_DATE,
''TRFX'' PRODUCT,
''N'' RUN_STATUS ,
0 COST_OF_FUNDS_RATE,
''01-JAN-1900'' Next_Coupon_Date,
0 Coupon_Rate,
'' '' Coupon_Frequency,
'' '' Issue_Category,
''01-JAN-1900'' Issue_Maturity_Date,
'' '' Issue_Govt_Nongov,
''01-JAN-1900'' Last_Coupon_Date,
0 FACE_VALUE ,
0 QTY_OPEN ,
0 EFFECTIVE_YIELD ,
0 Period ,
FX_TYPE Security_Type ,
GL.CURRENCY_PAIR ,
GL.CCY_ONE_AMOUNT_CCY ,
GL.CCY_TWO_AMOUNT_CCY ,
GL.CCY_ONE_AMOUNT_VALUE,
GL.CCY_TWO_AMOUNT_VALUE,
CASE WHEN DEAL_TYPE =''FXSPOT'' THEN CONTRACT_RATE
WHEN DEAL_TYPE =''FXOUTL'' THEN FWD_CONTRACT_RATE
WHEN DEAL_TYPE =''FXOUTS'' THEN FWD_CONTRACT_RATE
WHEN DEAL_TYPE =''FXSWAP'' THEN CONTRACT_RATE
ELSE 0 END NEAR_RATE,
CASE WHEN DEAL_TYPE =''FXSPOT'' THEN CONTRACT_RATE
WHEN DEAL_TYPE =''FXOUTL'' THEN FWD_CONTRACT_RATE
WHEN DEAL_TYPE =''FXOUTS'' THEN FWD_CONTRACT_RATE
WHEN DEAL_TYPE =''FXSWAP'' THEN FWD_CONTRACT_RATE
ELSE 0 END FAR_RATE,
CASE WHEN DEAL_TYPE =''FXSPOT'' THEN START_DATE
WHEN DEAL_TYPE =''FXOUTL'' THEN START_DATE
WHEN DEAL_TYPE =''FXOUTS'' THEN START_DATE
WHEN DEAL_TYPE =''FXSWAP'' THEN START_DATE
ELSE START_DATE END NEAR_DATE,
CASE WHEN DEALTYPE =''FXSPOT'' THEN START_DATE
WHEN DEALTYPE =''FXOUTL'' THEN END_DATE
WHEN DEALTYPE =''FXOUTS'' THEN END_DATE
WHEN DEALTYPE =''FXSWAP'' THEN END_DATE
ELSE END_DATE END FAR_DATE ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (select * from temp_spot) GL,
D10113.SD_CPTY@TREASURYPROD CP,
D10113.SD_CPTY_LB_ACCT@TREASURYPROD CPTY,
D10113.SD_SEC_DEFN@TREASURYPROD SECDFN
WHERE GL.CPTY_FBO_ID_NUM= SECDFN.FBO_ID_NUM(+)
AND GL.CPTY_FBO_ID_NUM= CP.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.CCYCDE = LB_ACCT_CCY(+)
AND GL.ACCOUNT_BRANCH =CPTY.LB_ACCT_BRANCH(+)
AND NVL(IS_DEFAULT(+),''Y'') =''Y''
AND trunc(Gl.TRANTIME) > '''||G_LastBusinessDateRun
||'''
AND trunc(Gl.TRANTIME) <=
'''||G_Current_Business_Date ||''' ');

EXECUTE IMMEDIATE ('CREATE table TEMP_SPOTFX AS SELECT


DISTINCT
'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.DEAL_IDENTIFIER,
DEAL_TYPE DEAL_TYPE,
NVL(DEALSUBTYPE,''MIGRA'') DEAL_SUB_TYPE,
START_DATE START_DATE,
NVL(ACCOUNT_BRANCH,''019'') VISION_OUC,
82 SOURCE_ID,
6 RECORD_TYPE,
''0'' PRINCIPAL_GL,
CCYCDE MIS_CURRENCY,
0 ISSUE_ID,
0 QTY_TRADED,
FX_BUY_SELL BUY_SELL_IND,
0 PRICE,
GL.SALES_SPREAD_RATE YIELD,
NVL(SECDFN.ISSUE_DATE,''01-JAN-1900'') ISSUE_DATE,
GL.DEAL_DATE DEAL_DATE,
NVL(END_DATE,START_DATE) MATURITY_DATE,
NVL(END_DATE,START_DATE) SETTLEMENT_DATE,
0 SETTLEMENT_VALUE,
CONTRACT_RATE INTREST_RATE,
CCY_ONE_AMOUNT_VALUE PRINCIPAL_AMOUNT,
0 DAYS_START_MAT,
0 DAYS_REMAINING_MAT,
CONTRACT_RATE INTEREST_RATE,
DEAL_STATE CONTRACT_STATUS,
CCYCDE TRADE_CCY,
VALUEDATE VALUEDATE,
ISSUE_PRICE ISSUE_PRICE,
ISSUE_CCY ISSUE_CCY,
SECDFN.FBO_ID_TYPE Issue_Type,
SUBSTR(SECDFN.NAME,1,20) Issue_Short_Name,
SECDFN.NAME Issue_Name,
ISSUER_FBO_ID_NUM Issuer_Code,
ISSUANCE_DATA_GUARANTOR Guarantor,
ACC_COUPON_METHOD Coupon_Index,
YIELD_BASIS YIELD_BASIS,
''NA'' BENEFICIARY,
DEALER_CODE TRADER_ID,
0 Number_Of_Units,
NVL(LB_ACCT_ID,'' '') Current_Account_No,
'||''''||G_Current_Business_Date ||''''||' FEED_DATE,
''TRFX'' PRODUCT,
''N'' RUN_STATUS ,
0 COST_OF_FUNDS_RATE,
''01-JAN-1900'' Next_Coupon_Date,
0 Coupon_Rate,
'' '' Coupon_Frequency,
'' '' Issue_Category,
''01-JAN-1900'' Issue_Maturity_Date,
'' '' Issue_Govt_Nongov,
''01-JAN-1900'' Last_Coupon_Date,
0 FACE_VALUE ,
0 QTY_OPEN ,
0 EFFECTIVE_YIELD ,
0 Period ,
FX_TYPE Security_Type ,
GL.CURRENCY_PAIR ,
GL.CCY_ONE_AMOUNT_CCY ,
GL.CCY_TWO_AMOUNT_CCY ,
GL.CCY_ONE_AMOUNT_VALUE,
GL.CCY_TWO_AMOUNT_VALUE,
CASE WHEN DEAL_TYPE =''FXSPOT'' THEN CONTRACT_RATE
WHEN DEAL_TYPE =''FXOUTL'' THEN FWD_CONTRACT_RATE
WHEN DEAL_TYPE =''FXOUTS'' THEN FWD_CONTRACT_RATE
WHEN DEAL_TYPE =''FXSWAP'' THEN CONTRACT_RATE
ELSE 0 END NEAR_RATE,
CASE WHEN DEAL_TYPE =''FXSPOT'' THEN CONTRACT_RATE
WHEN DEAL_TYPE =''FXOUTL'' THEN FWD_CONTRACT_RATE
WHEN DEAL_TYPE =''FXOUTS'' THEN FWD_CONTRACT_RATE
WHEN DEAL_TYPE =''FXSWAP'' THEN FWD_CONTRACT_RATE
ELSE 0 END FAR_RATE,
CASE WHEN DEAL_TYPE =''FXSPOT'' THEN START_DATE
WHEN DEAL_TYPE =''FXOUTL'' THEN START_DATE
WHEN DEAL_TYPE =''FXOUTS'' THEN START_DATE
WHEN DEAL_TYPE =''FXSWAP'' THEN START_DATE
ELSE START_DATE END NEAR_DATE,
CASE WHEN DEALTYPE =''FXSPOT'' THEN START_DATE
WHEN DEALTYPE =''FXOUTL'' THEN END_DATE
WHEN DEALTYPE =''FXOUTS'' THEN END_DATE
WHEN DEALTYPE =''FXSWAP'' THEN END_DATE
ELSE END_DATE END FAR_DATE ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (select * from temp_spot) GL,
D10113.SD_CPTY@TREASURYPROD CP,
D10113.SD_CPTY_LB_ACCT@TREASURYPROD CPTY,
D10113.SD_SEC_DEFN@TREASURYPROD SECDFN
WHERE GL.CPTY_FBO_ID_NUM= SECDFN.FBO_ID_NUM(+)
AND GL.CPTY_FBO_ID_NUM= CP.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.CCYCDE = LB_ACCT_CCY(+)
AND GL.ACCOUNT_BRANCH =CPTY.LB_ACCT_BRANCH(+)
AND NVL(IS_DEFAULT(+),''Y'') =''Y''
AND trunc(Gl.TRANTIME) > '''||G_LastBusinessDateRun
||'''
AND trunc(Gl.TRANTIME) <=
'''||G_Current_Business_Date ||''' ');
EXCEPTION
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception raised
trying to CREATE TEMP_SPOT_FX !!');
RETURN ERRONEOUS_EXIT;

END;

writeLogInfo('Beginning staging table TReasury


CUSTOMERS_FEED_STG population......');

BEGIN
writeLogInfo('INSERT INTO CUSTOMERS_FEED_STG (
COUNTRY,LE_BOOK,
CUSTOMER_ID,CUSTOMER_NAME,
CUSTOMER_ACRONYM,CB_MAJOR_PARTY_INDICATOR,
PARENT_CID,VISION_OUC, CUST_TYPE_CODE,
CUSTOMER_ATTRIBUTE_3,
FEED_DATE,
PRODUCT,RUN_STATUS ,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
''FT''||LPAD(FBO_ID_NUM,9,''0'') CUSTOMER_ID,
SUBSTR(NVL(SHORT_NAME_1,MNEMONIC),1,80)
CUSTOMER_NAME,
MNEMONIC CUSTOMER_ACRONYM,
CREDIT_WATCH CB_MAJOR_PARTY_INDICATOR,
LBS_CIF_ID PARENT_CID,
''019'' VISION_OUC,
CPTY_TYPE CUST_TYPE_CODE,
LBS_2 Customer_Attribute_3,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
sysdate Date_last_modified,
sysdate Date_Creation
FROM D10113.SD_CPTY@TREASURYPROD
WHERE trim(TRANTIME) >
'''||G_LastBusinessDateRun ||''' ');

EXECUTE IMMEDIATE ('INSERT INTO CUSTOMERS_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CUSTOMER_NAME,
CUSTOMER_ACRONYM,CB_MAJOR_PARTY_INDICATOR,
PARENT_CID,VISION_OUC, CUST_TYPE_CODE,
Customer_Attribute_3,
FEED_DATE,
PRODUCT,RUN_STATUS ,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
''FT''||LPAD(FBO_ID_NUM,9,''0'') CUSTOMER_ID,
SUBSTR(NVL(SHORT_NAME_1,MNEMONIC),1,80)
CUSTOMER_NAME,
MNEMONIC CUSTOMER_ACRONYM,
CREDIT_WATCH CB_MAJOR_PARTY_INDICATOR,
LBS_CIF_ID PARENT_CID,
''019'' VISION_OUC,
CPTY_TYPE CUST_TYPE_CODE,
LBS_2 Customer_Attribute_3,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
sysdate Date_last_modified,
sysdate Date_Creation
FROM D10113.SD_CPTY@TREASURYPROD
WHERE trim(TRANTIME) >
'''||G_LastBusinessDateRun ||''' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables SD_CPTY Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CUSTOMERS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getTreasCustStgData;

/*#######################################################################
##################################################
Name : getTreasSecContStgData
Description : Procedure to upload daily Treasury
Contracts Details data to Vision staging table and from staging
table to the main target table
[CONTRACTS_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getTreasSecContStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getTreasSecContStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table TREASURY_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO TREASURY_FEED_STG (


COUNTRY, LE_BOOK,CUSTOMER_ID,CONTRACT_ID,
LINKED_DEAL_NO,DEAL_TYPE,
DEAL_SUB_TYPE, START_DATE,VISION_OUC, SOURCE_ID,
RECORD_TYPE, PRINCIPAL_GL, MIS_CURRENCY,
ISSUE_ID, QTY_TRADED, BUY_SELL_IND, PRICE, YIELD,
ISSUE_DATE, DEAL_DATE, MATURITY_DATE,
SETTLEMENT_DATE, SETTLEMENT_VALUE, INTREST_RATE,
PRINCIPAL_AMOUNT, DAYS_START_MAT, DAYS_REMAINING_MAT,
INTEREST_RATE, CONTRACT_STATUS, TRADE_CCY, /*
VALUEDATE, */
ISSUE_PRICE, ISSUE_CCY,
Issue_Type,Issue_Short_Name, Issue_Name,Issuer_Code,
Guarantor,Coupon_Index, YIELD_BASIS, BENEFICIARY,
TRADER_ID, Number_Of_Units,
Current_Account_No,FEED_DATE,
PRODUCT,RUN_STATUS
,COST_OF_FUNDS_RATE,Next_Coupon_Date,
Coupon_Rate, Coupon_Frequency, Issue_Category,
Issue_Maturity_Date,
Issue_Govt_Nongov, Last_Coupon_Date,
DEAL_IDENTIFIER,
ACCRUED_TO_DATE, ACCRUED_VALUE,
FACE_VALUE , QTY_OPEN ,
EFFECTIVE_YIELD , Period ,
Security_Type , CURRENCY_PAIR ,
CCY_ONE_AMOUNT_CCY , CCY_TWO_AMOUNT_CCY ,
CCY_ONE_AMOUNT_VALUE, CCY_TWO_AMOUNT_VALUE,
NEAR_RATE , FAR_RATE ,
NEAR_DATE , END_DATE ,
DATE_LAST_MODIFIED, DATE_CREATION
)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.DEALNUMBER LINKED_DEAL_NO,
DEAL_TYPE DEAL_TYPE,
NVL(DEALSUBTYPE,''MIGRA'') DEAL_SUB_TYPE,
NVL(SECDFN.ISSUE_DATE,''01-JAN-1900'')
START_DATE,
NVL(LBS_ACCOUNT_BRANCH,''019'') VISION_OUC,
81 SOURCE_ID,
6 RECORD_TYPE,
''0'' PRINCIPAL_GL,
SETTLEMENT_CCY MIS_CURRENCY,
GL.SEC_DEFN_FBO_ID_NUM ISSUE_ID,
QTY_TRADED QTY_TRADED,
BUY_OR_SELL BUY_SELL_IND,
PRICE PRICE,
GL.YIELD YIELD,
NVL(SECDFN.ISSUE_DATE,''01-JAN-1900'')
ISSUE_DATE,
GL.DEAL_DATE DEAL_DATE,
SECDFN.MATURITY_DATE MATURITY_DATE,
SETTLEMENT_DATE SETTLEMENT_DATE,
SETTLEMENT_VALUE SETTLEMENT_VALUE,
CASE WHEN SECDFN.TYPE =''BA-CP'' THEN GL.PRICE
ELSE SIDES.FIX_RATE*100 END INTREST_RATE,
QTY_TRADED PRINCIPAL_AMOUNT,
0 DAYS_START_MAT,
0 DAYS_REMAINING_MAT,
CASE WHEN SECDFN.TYPE =''BA-CP'' THEN GL.PRICE
ELSE SIDES.FIX_RATE*100 END INTEREST_RATE,
DEAL_STATE CONTRACT_STATUS,
CCYCDE TRADE_CCY,
ISSUE_PRICE ISSUE_PRICE,
ISSUE_CCY ISSUE_CCY,
SECDFN.FBO_ID_TYPE Issue_Type,
SUBSTR(SECDFN.NAME,1,20) Issue_Short_Name,
SECDFN.NAME Issue_Name,
ISSUER_FBO_ID_NUM Issuer_Code,
ISSUANCE_DATA_GUARANTOR Guarantor,
ACC_COUPON_METHOD Coupon_Index,
YIELD_BASIS YIELD_BASIS,
''NA'' BENEFICIARY,
''NA'' TRADER_ID,
QTY_TRADED Number_Of_Units,
NVL(LB_ACCT_ID,'' '') Current_Account_No,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
0 COST_OF_FUNDS_RATE,
NVL(GL1.next_coupon_date, GL.COUPON_ENTRY)
Next_Coupon_Date,
SIDES.FIX_RATE*100 Coupon_Rate,
ACC_COUPON_METHOD Coupon_Frequency,
CLASS_STRING Issue_Category,
MATURITY_DATE Issue_Maturity_Date,
SUBSTR(SECDFN.TYPE,1,15) Issue_Govt_Nongov,
SETTLEMENT_DATE Last_Coupon_Date,
DEAL_IDENTIFIER,
ACCRUED_TO_DATE,
ACCRUED_VALUE,
-- CASE WHEN SECDFN.TYPE =''CORPORATE_FXD_BOND''
THEN SECDFN.ISSUANCE_FACE ELSE SECDFN.ISSUE_PRICE END FACE_VALUE, ERM
CHANGE
CASE WHEN SECDFN.TYPE =''CORPORATE_FXD_BOND''
THEN 100 ELSE SECDFN.ISSUE_PRICE END FACE_VALUE,
GL.QTY_OPEN ,
GL.EFFECTIVE_YIELD ,
CASE WHEN SECDFN.TYPE IN (''T-
BILL'',''TBILL'',''CORPORATE_FXD_BOND'') THEN
ROUND((SECDFN.MATURITY_DATE -
SECDFN.ISSUE_DATE ),0) ELSE ROUND((SECDFN.MATURITY_DATE -
SECDFN.ISSUE_DATE )/364,0) END Period ,
CASE WHEN SECDFN.TYPE =''CORPORATE_FXD_BOND''
THEN ''TFC''
WHEN SECDFN.TYPE =''INFRA_FXD_BOND'' THEN
''IFB''
WHEN SECDFN.TYPE =''GOV_FIX_BOND'' THEN
''FixIB''
WHEN SECDFN.TYPE IN (''T-BILL'',''TBILL'')
THEN ''T-BILL''
ELSE ''TFC'' END Security_Type ,
NULL CURRENCY_PAIR ,
NULL CCY_ONE_AMOUNT_CCY ,
NULL CCY_TWO_AMOUNT_CCY ,
NULL CCY_ONE_AMOUNT_VALUE,
NULL CCY_TWO_AMOUNT_VALUE,
GL.PRICE NEAR_RATE ,
GL.PRICE FAR_RATE ,
GL.DEAL_DATE NEAR_DATE ,
SECDFN.MATURITY_DATE END_DATE ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT GL.DEALNUMBER,SEC.DEAL_NUM,
GL.TRANTIME,SEC.DEAL_STATE,SEC.CPTY_FBO_ID_NUM,SEC_DEFN_FBO_ID_NUM,

DEAL_IDENTIFIER,ACCRUED_TO_DATE,ACCRUED_VALUE,

SETTLEMENT_DATE,COUPON_ENTRY,PRICE,QTY_TRADED,VALUEDATE,CCYCDE,INTERNAL_R
ATE,SETTLEMENT_VALUE,

DEAL_DATE,YIELD,EFFECTIVE_YIELD,QTY_OPEN,BUY_OR_SELL,SETTLEMENT_CCY,ledge
r,
case when LBS_ACCOUNT_BRANCH
=''NONE'' Then substr(LBS_ACCOUNT_ID,1,3) else LBS_ACCOUNT_BRANCH end
LBS_ACCOUNT_BRANCH ,
DEALSUBTYPE,DEAL_TYPE,case when
LBS_ACCOUNT_BRANCH =''NONE'' Then substr(LBS_ACCOUNT_ID,1,3) else
LBS_ACCOUNT_BRANCH end ACCOUNT_BRANCH
FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_BS@TREASURYPROD SEC WHERE GL.DEALNUMBER =SEC.DEAL_NUM)
GL,
D10113.SD_CPTY@TREASURYPROD CP,
D10113.SD_CPTY_LB_ACCT@TREASURYPROD CPTY,
D10113.SD_SEC_DEFN@TREASURYPROD SECDFN,
D10113.SD_SEC_DEFN_CF_SIDES@TREASURYPROD SIDES,
(
SELECT DISTINCT
GL.SEC_DEFN_FBO_ID_NUM,b.TYPE,MIN(A.end_date) next_coupon_date

FROM D10113.tt_secdefn_cash_flows@TREASURYPROD a,
D10113.SD_SEC_DEFN@TREASURYPROD b, D10113.TT_SEC_BS@TREASURYPROD GL
WHERE
GL.SEC_DEFN_FBO_ID_NUM= B.FBO_ID_NUM
AND
a.parent_fbo_id_num=b.fbo_id_num
AND fix_rate IS NOT
NULL
GROUP BY
b.TYPE,GL.SEC_DEFN_FBO_ID_NUM
) GL1
WHERE GL.SEC_DEFN_FBO_ID_NUM= SECDFN.FBO_ID_NUM
AND SIDES.PARENT_FBO_ID_NUM= SECDFN.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM= CP.FBO_ID_NUM
AND GL.SEC_DEFN_FBO_ID_NUM=
GL1.SEC_DEFN_FBO_ID_NUM(+)
AND GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND NVL(IS_DEFAULT(+),''Y'') =''Y''
AND trim(Gl.TRANTIME) >
to_date('''||G_LastBusinessDateRun||''',''DD-MON-RRRR'')
AND trim(Gl.TRANTIME) <=
to_date('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
UNION
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LAST_UPDATED_BY_DEAL_NUM LINKED_DEAL_NO,
DEAL_TYPE DEAL_TYPE,
NVL(DEALSUBTYPE,''MIGRA'') DEAL_SUB_TYPE,
DEAL_DATE START_DATE,
NVL(LBS_ACCOUNT_BRANCH,''019'') VISION_OUC,
81 SOURCE_ID,
6 RECORD_TYPE,
''0'' PRINCIPAL_GL,
CCYCDE MIS_CURRENCY,
GL.SEC_DEFN_FBO_ID_NUM ISSUE_ID,
CASE WHEN OPEN_QTY_BOUGHT !=0 THEN
OPEN_QTY_BOUGHT ELSE OPEN_QTY_SOLD END QTY_TRADED,
CASE WHEN OPEN_QTY_SOLD !=0 THEN ''S'' ELSE ''B''
END BUY_SELL_IND,
0 PRICE,
0 YIELD,
NVL(SECDFN.ISSUE_DATE,''01-JAN-1900'')
ISSUE_DATE,
GL.DEAL_DATE DEAL_DATE,
SECDFN.MATURITY_DATE MATURITY_DATE,
SETTLED_POSN_ENTRY SETTLEMENT_DATE,
ORIGINAL_SOLD_AMOUNT_VALUE SETTLEMENT_VALUE,
0 INTREST_RATE,
0 PRINCIPAL_AMOUNT,
0 DAYS_START_MAT,
0 DAYS_REMAINING_MAT,
0 INTEREST_RATE,
DEAL_STATE CONTRACT_STATUS,
CCYCDE TRADE_CCY,
ISSUE_PRICE ISSUE_PRICE,
ISSUE_CCY ISSUE_CCY,
SECDFN.FBO_ID_TYPE Issue_Type,
SUBSTR(SECDFN.NAME,1,20) Issue_Short_Name,
SECDFN.NAME Issue_Name,
ISSUER_FBO_ID_NUM Issuer_Code,
ISSUANCE_DATA_GUARANTOR Guarantor,
ACC_COUPON_METHOD Coupon_Index,
YIELD_BASIS YIELD_BASIS,
''NA'' BENEFICIARY,
''NA'' TRADER_ID,
NET_QTY Number_Of_Units,
NVL(LB_ACCT_ID,'' '') Current_Account_No,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
0
COST_OF_FUNDS_RATE,
COUPON_ENTRY Next_Coupon_Date,
SIDES.FIX_RATE*100 Coupon_Rate, /* ERM
Change */
ACC_COUPON_METHOD Coupon_Frequency,
CLASS_STRING Issue_Category,
MATURITY_DATE Issue_Maturity_Date,
SUBSTR(TYPE,1,15)
Issue_Govt_Nongov,
SETTLED_POSN_ENTRY Last_Coupon_Date,
DEAL_IDENTIFIER,
ACCRUED_TO_DATE,
ACCRUED_VALUE,
CASE WHEN SECDFN.TYPE =''CORPORATE_FXD_BOND'' THEN 100
ELSE SECDFN.ISSUE_PRICE END FACE_VALUE,
OPEN_QTY_BOUGHT - OPEN_QTY_SOLD QTY_OPEN ,
0 EFFECTIVE_YIELD ,
CASE WHEN SECDFN.TYPE IN (''T-
BILL'',''TBILL'',''CORPORATE_FXD_BOND'' ) THEN
ROUND((SECDFN.MATURITY_DATE - SECDFN.ISSUE_DATE
),0) ELSE ROUND((SECDFN.MATURITY_DATE - SECDFN.ISSUE_DATE )/364,0) END
Period ,
CASE WHEN SECDFN.TYPE =''CORPORATE_FXD_BOND'' THEN ''TFC''
WHEN SECDFN.TYPE =''INFRA_FXD_BOND'' THEN ''IFB''
WHEN SECDFN.TYPE =''GOV_FIX_BOND'' THEN ''FixIB''
WHEN SECDFN.TYPE IN (''T-BILL'',''TBILL'') THEN ''T-
BILL''
ELSE ''TFC'' END Security_Type ,
NULL CURRENCY_PAIR ,
NULL CCY_ONE_AMOUNT_CCY ,
NULL CCY_TWO_AMOUNT_CCY ,
NULL CCY_ONE_AMOUNT_VALUE,
NULL CCY_TWO_AMOUNT_VALUE,
0 NEAR_RATE ,
0 FAR_RATE ,
GL.DEAL_DATE NEAR_DATE ,
SECDFN.MATURITY_DATE END_DATE ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DISTINCT GL1.DEALNUMBER,SEC.DEAL_NUM,
GL1.TRANTIME,SEC.DEAL_STATE,SEC.CPTY_FBO_ID_NUM,SEC_DEFN_FBO_ID_NUM,

DEAL_IDENTIFIER,ACCRUED_TO_DATE,THIS_PERIOD_ACCRUED_COUPON
ACCRUED_VALUE,ledger,

SETTLED_POSN_ENTRY,COUPON_ENTRY,NET_QTY,VALUEDATE,GL1.CCYCDE
CCY_CODE,ORIGINAL_SOLD_AMOUNT_VALUE,
DEAL_DATE,OPEN_QTY_SOLD,CCYCDE,
LBS_ACCOUNT_BRANCH,

DEALSUBTYPE,DEAL_TYPE,OPEN_QTY_BOUGHT,
case when LBS_ACCOUNT_BRANCH =''NONE'' Then
substr(LBS_ACCOUNT_ID,1,3) else LBS_ACCOUNT_BRANCH end ACCOUNT_BRANCH
,nvl(BS.DEAL_NUM,gl1.DEALNUMBER) LAST_UPDATED_BY_DEAL_NUM
FROM TRSRY_GL_TRANS
GL1,D10113.TT_SEC_HDG@TREASURYPROD SEC ,
(SELECT max(DEAL_NUM)
deal_num,link1_deal_id_num FROM D10113.tt_sec_bs@TREASURYPROD
group by link1_deal_id_num ) bs
WHERE GL1.DEALNUMBER = SEC.DEAL_NUM
AND GL1.DEALNUMBER =
BS.link1_deal_id_num(+)) GL,
D10113.SD_CPTY@TREASURYPROD CP,
D10113.SD_CPTY_LB_ACCT@TREASURYPROD CPTY,
D10113.SD_SEC_DEFN@TREASURYPROD SECDFN ,
D10113.SD_SEC_DEFN_CF_SIDES@TREASURYPROD SIDES
WHERE GL.SEC_DEFN_FBO_ID_NUM= SECDFN.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM= CP.FBO_ID_NUM
AND SIDES.PARENT_FBO_ID_NUM= SECDFN.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM = CPTY.FBO_ID_NUM(+)
AND NVL(IS_DEFAULT(+),''Y'') =''Y''
AND trim(Gl.TRANTIME) >
'''||G_LastBusinessDateRun||'''
AND trim(Gl.TRANTIME) <=
'''||G_Current_Business_Date ||''' ');

EXECUTE IMMEDIATE ('INSERT INTO TREASURY_FEED_STG (


COUNTRY, LE_BOOK,CUSTOMER_ID,CONTRACT_ID,
LINKED_DEAL_NO,DEAL_TYPE,
DEAL_SUB_TYPE, START_DATE,VISION_OUC, SOURCE_ID,
RECORD_TYPE, PRINCIPAL_GL, MIS_CURRENCY,
ISSUE_ID, QTY_TRADED, BUY_SELL_IND, PRICE, YIELD,
ISSUE_DATE, DEAL_DATE, MATURITY_DATE,
SETTLEMENT_DATE, SETTLEMENT_VALUE, INTREST_RATE,
PRINCIPAL_AMOUNT, DAYS_START_MAT, DAYS_REMAINING_MAT,
INTEREST_RATE, CONTRACT_STATUS, TRADE_CCY, /*
VALUEDATE, */
ISSUE_PRICE, ISSUE_CCY,
Issue_Type,Issue_Short_Name, Issue_Name,Issuer_Code,
Guarantor,Coupon_Index, YIELD_BASIS, BENEFICIARY,
TRADER_ID, Number_Of_Units,
Current_Account_No,FEED_DATE,
PRODUCT,RUN_STATUS
,COST_OF_FUNDS_RATE,Next_Coupon_Date,
Coupon_Rate, Coupon_Frequency, Issue_Category,
Issue_Maturity_Date,
Issue_Govt_Nongov, Last_Coupon_Date,
DEAL_IDENTIFIER,
ACCRUED_TO_DATE, ACCRUED_VALUE,
FACE_VALUE , QTY_OPEN ,
EFFECTIVE_YIELD , Period ,
Security_Type , CURRENCY_PAIR ,
CCY_ONE_AMOUNT_CCY , CCY_TWO_AMOUNT_CCY ,
CCY_ONE_AMOUNT_VALUE, CCY_TWO_AMOUNT_VALUE,
NEAR_RATE , FAR_RATE ,
NEAR_DATE , END_DATE ,
DATE_LAST_MODIFIED, DATE_CREATION
)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.DEALNUMBER LINKED_DEAL_NO,
DEAL_TYPE DEAL_TYPE,
NVL(DEALSUBTYPE,''MIGRA'') DEAL_SUB_TYPE,
NVL(SECDFN.ISSUE_DATE,''01-JAN-1900'')
START_DATE,
NVL(LBS_ACCOUNT_BRANCH,''019'') VISION_OUC,
81 SOURCE_ID,
6 RECORD_TYPE,
''0'' PRINCIPAL_GL,
SETTLEMENT_CCY MIS_CURRENCY,
GL.SEC_DEFN_FBO_ID_NUM ISSUE_ID,
QTY_TRADED QTY_TRADED,
BUY_OR_SELL BUY_SELL_IND,
PRICE PRICE,
GL.YIELD YIELD,
NVL(SECDFN.ISSUE_DATE,''01-JAN-1900'')
ISSUE_DATE,
GL.DEAL_DATE DEAL_DATE,
SECDFN.MATURITY_DATE MATURITY_DATE,
SETTLEMENT_DATE SETTLEMENT_DATE,
SETTLEMENT_VALUE SETTLEMENT_VALUE,
CASE WHEN SECDFN.TYPE =''BA-CP'' THEN GL.PRICE
ELSE SIDES.FIX_RATE*100 END INTREST_RATE,
QTY_TRADED PRINCIPAL_AMOUNT,
0 DAYS_START_MAT,
0 DAYS_REMAINING_MAT,
CASE WHEN SECDFN.TYPE =''BA-CP'' THEN GL.PRICE
ELSE SIDES.FIX_RATE*100 END INTEREST_RATE,
DEAL_STATE CONTRACT_STATUS,
CCYCDE TRADE_CCY,
ISSUE_PRICE ISSUE_PRICE,
ISSUE_CCY ISSUE_CCY,
SECDFN.FBO_ID_TYPE Issue_Type,
SUBSTR(SECDFN.NAME,1,20) Issue_Short_Name,
SECDFN.NAME Issue_Name,
ISSUER_FBO_ID_NUM Issuer_Code,
ISSUANCE_DATA_GUARANTOR Guarantor,
ACC_COUPON_METHOD Coupon_Index,
YIELD_BASIS YIELD_BASIS,
''NA'' BENEFICIARY,
''NA'' TRADER_ID,
QTY_TRADED Number_Of_Units,
NVL(LB_ACCT_ID,'' '') Current_Account_No,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
0 COST_OF_FUNDS_RATE,
NVL(GL1.next_coupon_date, GL.COUPON_ENTRY)
Next_Coupon_Date,
SIDES.FIX_RATE*100 Coupon_Rate,
ACC_COUPON_METHOD Coupon_Frequency,
CLASS_STRING Issue_Category,
MATURITY_DATE Issue_Maturity_Date,
SUBSTR(SECDFN.TYPE,1,15) Issue_Govt_Nongov,
SETTLEMENT_DATE Last_Coupon_Date,
DEAL_IDENTIFIER,
ACCRUED_TO_DATE,
ACCRUED_VALUE,
-- CASE WHEN SECDFN.TYPE =''CORPORATE_FXD_BOND''
THEN SECDFN.ISSUANCE_FACE ELSE SECDFN.ISSUE_PRICE END FACE_VALUE, ERM
CHANGE
CASE WHEN SECDFN.TYPE =''CORPORATE_FXD_BOND''
THEN 100 ELSE SECDFN.ISSUE_PRICE END FACE_VALUE,
GL.QTY_OPEN ,
GL.EFFECTIVE_YIELD ,
CASE WHEN SECDFN.TYPE IN (''T-
BILL'',''TBILL'',''CORPORATE_FXD_BOND'') THEN
ROUND((SECDFN.MATURITY_DATE -
SECDFN.ISSUE_DATE ),0) ELSE ROUND((SECDFN.MATURITY_DATE -
SECDFN.ISSUE_DATE )/364,0) END Period ,
CASE WHEN SECDFN.TYPE =''CORPORATE_FXD_BOND''
THEN ''TFC''
WHEN SECDFN.TYPE =''INFRA_FXD_BOND'' THEN
''IFB''
WHEN SECDFN.TYPE =''GOV_FIX_BOND'' THEN
''FixIB''
WHEN SECDFN.TYPE IN (''T-BILL'',''TBILL'')
THEN ''T-BILL''
ELSE ''TFC'' END Security_Type ,
NULL CURRENCY_PAIR ,
NULL CCY_ONE_AMOUNT_CCY ,
NULL CCY_TWO_AMOUNT_CCY ,
NULL CCY_ONE_AMOUNT_VALUE,
NULL CCY_TWO_AMOUNT_VALUE,
GL.PRICE NEAR_RATE ,
GL.PRICE FAR_RATE ,
GL.DEAL_DATE NEAR_DATE ,
SECDFN.MATURITY_DATE END_DATE ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT GL.DEALNUMBER,SEC.DEAL_NUM,
GL.TRANTIME,SEC.DEAL_STATE,SEC.CPTY_FBO_ID_NUM,SEC_DEFN_FBO_ID_NUM,

DEAL_IDENTIFIER,ACCRUED_TO_DATE,ACCRUED_VALUE,

SETTLEMENT_DATE,COUPON_ENTRY,PRICE,QTY_TRADED,VALUEDATE,CCYCDE,INTERNAL_R
ATE,SETTLEMENT_VALUE,

DEAL_DATE,YIELD,EFFECTIVE_YIELD,QTY_OPEN,BUY_OR_SELL,SETTLEMENT_CCY,ledge
r,
case when LBS_ACCOUNT_BRANCH
=''NONE'' Then substr(LBS_ACCOUNT_ID,1,3) else LBS_ACCOUNT_BRANCH end
LBS_ACCOUNT_BRANCH ,
DEALSUBTYPE,DEAL_TYPE,case when
LBS_ACCOUNT_BRANCH =''NONE'' Then substr(LBS_ACCOUNT_ID,1,3) else
LBS_ACCOUNT_BRANCH end ACCOUNT_BRANCH
FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_BS@TREASURYPROD SEC WHERE GL.DEALNUMBER =SEC.DEAL_NUM)
GL,
D10113.SD_CPTY@TREASURYPROD CP,
D10113.SD_CPTY_LB_ACCT@TREASURYPROD CPTY,
D10113.SD_SEC_DEFN@TREASURYPROD SECDFN,
D10113.SD_SEC_DEFN_CF_SIDES@TREASURYPROD SIDES,
(
SELECT DISTINCT
GL.SEC_DEFN_FBO_ID_NUM,b.TYPE,MIN(A.end_date) next_coupon_date

FROM D10113.tt_secdefn_cash_flows@TREASURYPROD a,
D10113.SD_SEC_DEFN@TREASURYPROD b, D10113.TT_SEC_BS@TREASURYPROD GL
WHERE
GL.SEC_DEFN_FBO_ID_NUM= B.FBO_ID_NUM
AND
a.parent_fbo_id_num=b.fbo_id_num
AND fix_rate IS NOT
NULL
GROUP BY
b.TYPE,GL.SEC_DEFN_FBO_ID_NUM
) GL1
WHERE GL.SEC_DEFN_FBO_ID_NUM= SECDFN.FBO_ID_NUM
AND SIDES.PARENT_FBO_ID_NUM= SECDFN.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM= CP.FBO_ID_NUM
AND GL.SEC_DEFN_FBO_ID_NUM=
GL1.SEC_DEFN_FBO_ID_NUM(+)
AND GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND NVL(IS_DEFAULT(+),''Y'') =''Y''
AND trim(Gl.TRANTIME) >
to_date('''||G_LastBusinessDateRun||''',''DD-MON-RRRR'')
AND trim(Gl.TRANTIME) <=
to_date('''||G_Current_Business_Date ||''',''DD-MON-RRRR'')
UNION
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LAST_UPDATED_BY_DEAL_NUM LINKED_DEAL_NO,
DEAL_TYPE DEAL_TYPE,
NVL(DEALSUBTYPE,''MIGRA'') DEAL_SUB_TYPE,
DEAL_DATE START_DATE,
NVL(LBS_ACCOUNT_BRANCH,''019'') VISION_OUC,
81 SOURCE_ID,
6 RECORD_TYPE,
''0'' PRINCIPAL_GL,
CCYCDE MIS_CURRENCY,
GL.SEC_DEFN_FBO_ID_NUM ISSUE_ID,
CASE WHEN OPEN_QTY_BOUGHT !=0 THEN
OPEN_QTY_BOUGHT ELSE OPEN_QTY_SOLD END QTY_TRADED,
CASE WHEN OPEN_QTY_SOLD !=0 THEN ''S'' ELSE ''B''
END BUY_SELL_IND,
0 PRICE,
0 YIELD,
NVL(SECDFN.ISSUE_DATE,''01-JAN-1900'')
ISSUE_DATE,
GL.DEAL_DATE DEAL_DATE,
SECDFN.MATURITY_DATE MATURITY_DATE,
SETTLED_POSN_ENTRY SETTLEMENT_DATE,
ORIGINAL_SOLD_AMOUNT_VALUE SETTLEMENT_VALUE,
0 INTREST_RATE,
0 PRINCIPAL_AMOUNT,
0 DAYS_START_MAT,
0 DAYS_REMAINING_MAT,
0 INTEREST_RATE,
DEAL_STATE CONTRACT_STATUS,
CCYCDE TRADE_CCY,
ISSUE_PRICE ISSUE_PRICE,
ISSUE_CCY ISSUE_CCY,
SECDFN.FBO_ID_TYPE Issue_Type,
SUBSTR(SECDFN.NAME,1,20) Issue_Short_Name,
SECDFN.NAME Issue_Name,
ISSUER_FBO_ID_NUM Issuer_Code,
ISSUANCE_DATA_GUARANTOR Guarantor,
ACC_COUPON_METHOD Coupon_Index,
YIELD_BASIS YIELD_BASIS,
''NA'' BENEFICIARY,
''NA'' TRADER_ID,
NET_QTY Number_Of_Units,
NVL(LB_ACCT_ID,'' '') Current_Account_No,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
0
COST_OF_FUNDS_RATE,
COUPON_ENTRY Next_Coupon_Date,
SIDES.FIX_RATE*100 Coupon_Rate, /* ERM
Change */
ACC_COUPON_METHOD Coupon_Frequency,
CLASS_STRING Issue_Category,
MATURITY_DATE Issue_Maturity_Date,
SUBSTR(TYPE,1,15)
Issue_Govt_Nongov,
SETTLED_POSN_ENTRY Last_Coupon_Date,
DEAL_IDENTIFIER,
ACCRUED_TO_DATE,
ACCRUED_VALUE,
CASE WHEN SECDFN.TYPE =''CORPORATE_FXD_BOND'' THEN 100
ELSE SECDFN.ISSUE_PRICE END FACE_VALUE,
OPEN_QTY_BOUGHT - OPEN_QTY_SOLD QTY_OPEN ,
0 EFFECTIVE_YIELD ,
CASE WHEN SECDFN.TYPE IN (''T-
BILL'',''TBILL'',''CORPORATE_FXD_BOND'' ) THEN
ROUND((SECDFN.MATURITY_DATE - SECDFN.ISSUE_DATE
),0) ELSE ROUND((SECDFN.MATURITY_DATE - SECDFN.ISSUE_DATE )/364,0) END
Period ,
CASE WHEN SECDFN.TYPE =''CORPORATE_FXD_BOND'' THEN ''TFC''
WHEN SECDFN.TYPE =''INFRA_FXD_BOND'' THEN ''IFB''
WHEN SECDFN.TYPE =''GOV_FIX_BOND'' THEN ''FixIB''
WHEN SECDFN.TYPE IN (''T-BILL'',''TBILL'') THEN ''T-
BILL''
ELSE ''TFC'' END Security_Type ,
NULL CURRENCY_PAIR ,
NULL CCY_ONE_AMOUNT_CCY ,
NULL CCY_TWO_AMOUNT_CCY ,
NULL CCY_ONE_AMOUNT_VALUE,
NULL CCY_TWO_AMOUNT_VALUE,
0 NEAR_RATE ,
0 FAR_RATE ,
GL.DEAL_DATE NEAR_DATE ,
SECDFN.MATURITY_DATE END_DATE ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DISTINCT GL1.DEALNUMBER,SEC.DEAL_NUM,
GL1.TRANTIME,SEC.DEAL_STATE,SEC.CPTY_FBO_ID_NUM,SEC_DEFN_FBO_ID_NUM,
DEAL_IDENTIFIER,ACCRUED_TO_DATE,THIS_PERIOD_ACCRUED_COUPON
ACCRUED_VALUE,ledger,

SETTLED_POSN_ENTRY,COUPON_ENTRY,NET_QTY,VALUEDATE,GL1.CCYCDE
CCY_CODE,ORIGINAL_SOLD_AMOUNT_VALUE,
DEAL_DATE,OPEN_QTY_SOLD,CCYCDE,
LBS_ACCOUNT_BRANCH,

DEALSUBTYPE,DEAL_TYPE,OPEN_QTY_BOUGHT,
case when LBS_ACCOUNT_BRANCH =''NONE'' Then
substr(LBS_ACCOUNT_ID,1,3) else LBS_ACCOUNT_BRANCH end ACCOUNT_BRANCH
,nvl(BS.DEAL_NUM,gl1.DEALNUMBER) LAST_UPDATED_BY_DEAL_NUM
FROM TRSRY_GL_TRANS
GL1,D10113.TT_SEC_HDG@TREASURYPROD SEC ,
(SELECT max(DEAL_NUM)
deal_num,link1_deal_id_num FROM D10113.tt_sec_bs@TREASURYPROD
group by link1_deal_id_num ) bs
WHERE GL1.DEALNUMBER = SEC.DEAL_NUM
AND GL1.DEALNUMBER =
BS.link1_deal_id_num(+)) GL,
D10113.SD_CPTY@TREASURYPROD CP,
D10113.SD_CPTY_LB_ACCT@TREASURYPROD CPTY,
D10113.SD_SEC_DEFN@TREASURYPROD SECDFN ,
D10113.SD_SEC_DEFN_CF_SIDES@TREASURYPROD SIDES
WHERE GL.SEC_DEFN_FBO_ID_NUM= SECDFN.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM= CP.FBO_ID_NUM
AND SIDES.PARENT_FBO_ID_NUM= SECDFN.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM = CPTY.FBO_ID_NUM(+)
AND NVL(IS_DEFAULT(+),''Y'') =''Y''
AND trim(Gl.TRANTIME) >
'''||G_LastBusinessDateRun||'''
AND trim(Gl.TRANTIME) <=
'''||G_Current_Business_Date ||''' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GL_TRANS_ALL /
TT_SEC_BS / TT_SEC_HDG Does not exists/not accessiable !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TREASURY_FEED_STG !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getTreasSecContStgData;

/*#######################################################################
##################################################
Name : getTreasSwapContStgData
Description : Procedure to upload daily Contracts
Details data to Vision staging table and from staging
table to the main target table
[TREASURY_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getTreasSwapContStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */
IF (P_Schema_Name IS NOT NULL) THEN
BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getTreasSwapContStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table TREASURY_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO TREASURY_FEED_STG (


COUNTRY, LE_BOOK,
CUSTOMER_ID,CONTRACT_ID, DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
VISION_OUC, SOURCE_ID,
RECORD_TYPE,PRINCIPAL_GL,
MIS_CURRENCY, ISSUE_ID,
QTY_TRADED, BUY_SELL_IND,
PRICE, YIELD, ISSUE_DATE,
DEAL_DATE,MATURITY_DATE,
SETTLEMENT_DATE, SETTLEMENT_VALUE,
INTREST_RATE, PRINCIPAL_AMOUNT,
DAYS_START_MAT, DAYS_REMAINING_MAT,
INTEREST_RATE, CONTRACT_STATUS,
TRADE_CCY, /*VALUEDATE, */
ISSUE_PRICE,ISSUE_CCY,
Issue_Type, Issue_Short_Name,
Issue_Name,Issuer_Code,
Guarantor,Coupon_Index,
YIELD_BASIS,BENEFICIARY,
TRADER_ID,Number_Of_Units,
Current_Account_No,FEED_DATE,
PRODUCT,RUN_STATUS,
COST_OF_FUNDS_RATE,Next_Coupon_Date,
Coupon_Rate, Coupon_Frequency,
Issue_Category, Issue_Maturity_Date,
Issue_Govt_Nongov, Last_Coupon_Date,
DEAL_IDENTIFIER,
ACCRUED_TO_DATE,
ACCRUED_VALUE,
DATE_LAST_MODIFIED,DATE_CREATION
)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
DEAL_TYPE DEAL_TYPE,
NVL(DEALSUBTYPE,''MIGRA'') DEAL_SUB_TYPE,
GL.START_DATE START_DATE,
NVL(ACCOUNT_BRANCH,''019'') VISION_OUC,
83 SOURCE_ID,
6 RECORD_TYPE,
''0'' PRINCIPAL_GL,
CCYCDE MIS_CURRENCY,
0 ISSUE_ID,
0 QTY_TRADED,
''B'' BUY_SELL_IND,
0 PRICE,
0 YIELD,
NVL(SECDFN.ISSUE_DATE,''01-JAN-1900'')
ISSUE_DATE,
GL.DEAL_DATE DEAL_DATE,
Gl.END_DATE MATURITY_DATE,
NVL(Gl.END_DATE,''01-JAN-1900'') SETTLEMENT_DATE,
0 SETTLEMENT_VALUE,
ROUND(settlement_rATE*100,2) INTREST_RATE,
NOTIONAL_AMOUNT_VALUE PRINCIPAL_AMOUNT,
0 DAYS_START_MAT,
0 DAYS_REMAINING_MAT,
ROUND(settlement_rATE*100,2) INTEREST_RATE,
DEAL_STATE CONTRACT_STATUS,
CCYCDE TRADE_CCY,
/*VALUEDATE VALUEDATE, */
ISSUE_PRICE ISSUE_PRICE,
ISSUE_CCY ISSUE_CCY,
SECDFN.FBO_ID_TYPE Issue_Type,
SUBSTR(SECDFN.NAME,1,20) Issue_Short_Name,
SECDFN.NAME Issue_Name,
ISSUER_FBO_ID_NUM Issuer_Code,
ISSUANCE_DATA_GUARANTOR Guarantor,
ACC_COUPON_METHOD Coupon_Index,
YIELD_BASIS YIELD_BASIS,
''NA'' BENEFICIARY,
DEALER_CODE TRADER_ID,
0 Number_Of_Units,
NVL(LB_ACCT_ID,'' '') Current_Account_No,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
0 COST_OF_FUNDS_RATE,
''01-JAN-1900'' Next_Coupon_Date,
0 Coupon_Rate,
NULL Coupon_Frequency,
NULL Issue_Category,
''01-JAN-1900'' Issue_Maturity_Date,
NULL Issue_Govt_Nongov,
''01-JAN-1900'' Last_Coupon_Date,
DEAL_IDENTIFIER,
SETTLEMENT_VALUE_VALUE ACCRUED_TO_DATE,
ACCRUED_TO_DATE_VALUE ACCRUED_VALUE,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT TRANTIME,DEAL_STATE,CPTY_FBO_ID_NUM
,DEAL_NUM,DEALNUMBER,DEALER_CODE,VALUEDATE,CCYCDE,END_DATE,

DEAL_DATE,START_DATE,DEALSUBTYPE,DEAL_TYPE,VERSION,ledger,
LBS_ACCOUNT_BRANCH
ACCOUNT_BRANCH,DEAL_IDENTIFIER
FROM TRSRY_GL_TRANS
GL,D10113.TT_SWAP@TREASURYPROD REPO WHERE GL.DEALNUMBER =REPO.DEAL_NUM)
GL,
(select * from D10113.TT_SWAP_cash_flows@TREASURYPROD
Cash
where
subtype=''MAIN''
and PARENT_FBO_ID_VER = (select
max(PARENT_FBO_ID_VER) from D10113.TT_SWAP_cash_flows@TREASURYPROD
where parent_fbo_id_num
=cash.parent_fbo_id_num
)) Cash ,
D10113.SD_CPTY@TREASURYPROD CP,
D10113.SD_CPTY_LB_ACCT@TREASURYPROD CPTY,
D10113.SD_SEC_DEFN@TREASURYPROD SECDFN
WHERE GL.DEAL_NUM=Cash.PARENT_FBO_ID_NUM(+)
AND GL.CPTY_FBO_ID_NUM= SECDFN.FBO_ID_NUM(+)
AND GL.CPTY_FBO_ID_NUM= CP.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.CCYCDE = LB_ACCT_CCY(+)
AND GL.ACCOUNT_BRANCH =CPTY.LB_ACCT_BRANCH(+)
AND NVL(IS_DEFAULT(+),''Y'') =''Y''
AND trim(Gl.TRANTIME) >
'''||G_LastBusinessDateRun||'''
AND trim(Gl.TRANTIME) <=
'''||G_Current_Business_Date ||''' ');

EXECUTE IMMEDIATE ('INSERT INTO TREASURY_FEED_STG (


COUNTRY, LE_BOOK,
CUSTOMER_ID,CONTRACT_ID, DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
VISION_OUC, SOURCE_ID,
RECORD_TYPE,PRINCIPAL_GL,
MIS_CURRENCY, ISSUE_ID,
QTY_TRADED, BUY_SELL_IND,
PRICE, YIELD, ISSUE_DATE,
DEAL_DATE,MATURITY_DATE,
SETTLEMENT_DATE, SETTLEMENT_VALUE,
INTREST_RATE, PRINCIPAL_AMOUNT,
DAYS_START_MAT, DAYS_REMAINING_MAT,
INTEREST_RATE, CONTRACT_STATUS,
TRADE_CCY, /*VALUEDATE, */
ISSUE_PRICE,ISSUE_CCY,
Issue_Type, Issue_Short_Name,
Issue_Name,Issuer_Code,
Guarantor,Coupon_Index,
YIELD_BASIS,BENEFICIARY,
TRADER_ID,Number_Of_Units,
Current_Account_No,FEED_DATE,
PRODUCT,RUN_STATUS,
COST_OF_FUNDS_RATE,Next_Coupon_Date,
Coupon_Rate, Coupon_Frequency,
Issue_Category, Issue_Maturity_Date,
Issue_Govt_Nongov, Last_Coupon_Date,
DEAL_IDENTIFIER,
ACCRUED_TO_DATE,
ACCRUED_VALUE,
DATE_LAST_MODIFIED,DATE_CREATION
)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
DEAL_TYPE DEAL_TYPE,
NVL(DEALSUBTYPE,''MIGRA'') DEAL_SUB_TYPE,
GL.START_DATE START_DATE,
NVL(ACCOUNT_BRANCH,''019'') VISION_OUC,
83 SOURCE_ID,
6 RECORD_TYPE,
''0'' PRINCIPAL_GL,
CCYCDE MIS_CURRENCY,
0 ISSUE_ID,
0 QTY_TRADED,
''B'' BUY_SELL_IND,
0 PRICE,
0 YIELD,
NVL(SECDFN.ISSUE_DATE,''01-JAN-1900'')
ISSUE_DATE,
GL.DEAL_DATE DEAL_DATE,
Gl.END_DATE MATURITY_DATE,
NVL(Gl.END_DATE,''01-JAN-1900'') SETTLEMENT_DATE,
0 SETTLEMENT_VALUE,
ROUND(settlement_rATE*100,2) INTREST_RATE,
NOTIONAL_AMOUNT_VALUE PRINCIPAL_AMOUNT,
0 DAYS_START_MAT,
0 DAYS_REMAINING_MAT,
ROUND(settlement_rATE*100,2) INTEREST_RATE,
DEAL_STATE CONTRACT_STATUS,
CCYCDE TRADE_CCY,
/*VALUEDATE VALUEDATE, */
ISSUE_PRICE ISSUE_PRICE,
ISSUE_CCY ISSUE_CCY,
SECDFN.FBO_ID_TYPE Issue_Type,
SUBSTR(SECDFN.NAME,1,20) Issue_Short_Name,
SECDFN.NAME Issue_Name,
ISSUER_FBO_ID_NUM Issuer_Code,
ISSUANCE_DATA_GUARANTOR Guarantor,
ACC_COUPON_METHOD Coupon_Index,
YIELD_BASIS YIELD_BASIS,
''NA'' BENEFICIARY,
DEALER_CODE TRADER_ID,
0 Number_Of_Units,
NVL(LB_ACCT_ID,'' '') Current_Account_No,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
0 COST_OF_FUNDS_RATE,
''01-JAN-1900'' Next_Coupon_Date,
0 Coupon_Rate,
NULL Coupon_Frequency,
NULL Issue_Category,
''01-JAN-1900'' Issue_Maturity_Date,
NULL Issue_Govt_Nongov,
''01-JAN-1900'' Last_Coupon_Date,
DEAL_IDENTIFIER,
SETTLEMENT_VALUE_VALUE ACCRUED_TO_DATE,
ACCRUED_TO_DATE_VALUE ACCRUED_VALUE,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT TRANTIME,DEAL_STATE,CPTY_FBO_ID_NUM
,DEAL_NUM,DEALNUMBER,DEALER_CODE,VALUEDATE,CCYCDE,END_DATE,

DEAL_DATE,START_DATE,DEALSUBTYPE,DEAL_TYPE,VERSION,ledger,
LBS_ACCOUNT_BRANCH
ACCOUNT_BRANCH,DEAL_IDENTIFIER
FROM TRSRY_GL_TRANS
GL,D10113.TT_SWAP@TREASURYPROD REPO WHERE GL.DEALNUMBER =REPO.DEAL_NUM)
GL,
(select * from D10113.TT_SWAP_cash_flows@TREASURYPROD
Cash
where
subtype=''MAIN''
and PARENT_FBO_ID_VER = (select
max(PARENT_FBO_ID_VER) from D10113.TT_SWAP_cash_flows@TREASURYPROD
where parent_fbo_id_num
=cash.parent_fbo_id_num
)) Cash ,
D10113.SD_CPTY@TREASURYPROD CP,
D10113.SD_CPTY_LB_ACCT@TREASURYPROD CPTY,
D10113.SD_SEC_DEFN@TREASURYPROD SECDFN
WHERE GL.DEAL_NUM=Cash.PARENT_FBO_ID_NUM(+)
AND GL.CPTY_FBO_ID_NUM= SECDFN.FBO_ID_NUM(+)
AND GL.CPTY_FBO_ID_NUM= CP.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.CCYCDE = LB_ACCT_CCY(+)
AND GL.ACCOUNT_BRANCH =CPTY.LB_ACCT_BRANCH(+)
AND NVL(IS_DEFAULT(+),''Y'') =''Y''
AND trim(Gl.TRANTIME) >
'''||G_LastBusinessDateRun||'''
AND trim(Gl.TRANTIME) <=
'''||G_Current_Business_Date ||''' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GL_TRANS_ALL /
TT_SWAP Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TREASURY_FEED_STG !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getTreasSwapContStgData;

/*#######################################################################
##################################################
Name : getTreasCommContStgData
Description : Procedure to upload daily Contracts
Details data to Vision staging table and from staging
table to the main target table
[TREASURY_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getTreasCommContStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */
IF (P_Schema_Name IS NOT NULL) THEN
BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getTreasCommContStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table TREASURY_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO TREASURY_FEED_STG (


COUNTRY, LE_BOOK,
CUSTOMER_ID,CONTRACT_ID, DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
VISION_OUC, SOURCE_ID,
RECORD_TYPE,PRINCIPAL_GL,
MIS_CURRENCY, ISSUE_ID,
QTY_TRADED, BUY_SELL_IND,
PRICE, YIELD, ISSUE_DATE,
DEAL_DATE,MATURITY_DATE,
SETTLEMENT_DATE, SETTLEMENT_VALUE,
INTREST_RATE, PRINCIPAL_AMOUNT,
DAYS_START_MAT, DAYS_REMAINING_MAT,
INTEREST_RATE, CONTRACT_STATUS,
TRADE_CCY, /*VALUEDATE, */
ISSUE_PRICE,ISSUE_CCY,
Issue_Type, Issue_Short_Name,
Issue_Name,Issuer_Code,
Guarantor,Coupon_Index,
YIELD_BASIS,BENEFICIARY,
TRADER_ID,Number_Of_Units,
Current_Account_No,FEED_DATE,
PRODUCT,RUN_STATUS,
COST_OF_FUNDS_RATE,Next_Coupon_Date,
Coupon_Rate, Coupon_Frequency,
Issue_Category, Issue_Maturity_Date,
Issue_Govt_Nongov, Last_Coupon_Date,
DEAL_IDENTIFIER,
ACCRUED_TO_DATE,
ACCRUED_VALUE,
DATE_LAST_MODIFIED,DATE_CREATION
)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
DEAL_TYPE DEAL_TYPE,
NVL(DEALSUBTYPE,''MIGRA'') DEAL_SUB_TYPE,
GL.START_DATE START_DATE,
NVL(ACCOUNT_BRANCH,''019'') VISION_OUC,
84 SOURCE_ID,
6 RECORD_TYPE,
''0'' PRINCIPAL_GL,
CCYCDE MIS_CURRENCY,
0 ISSUE_ID,
0 QTY_TRADED,
''B'' BUY_SELL_IND,
0 PRICE,
0 YIELD,
NVL(SECDFN.ISSUE_DATE,''01-JAN-1900'')
ISSUE_DATE,
GL.DEAL_DATE DEAL_DATE,
Gl.END_DATE MATURITY_DATE,
NVL(Gl.END_DATE,''01-JAN-1900'') SETTLEMENT_DATE,
0 SETTLEMENT_VALUE,
ROUND(settlement_rATE*100,2) INTREST_RATE,
NOTIONAL_AMOUNT_VALUE PRINCIPAL_AMOUNT,
0 DAYS_START_MAT,
0 DAYS_REMAINING_MAT,
ROUND(settlement_rATE*100,2) INTEREST_RATE,
DEAL_STATE CONTRACT_STATUS,
CCYCDE TRADE_CCY,
/*VALUEDATE VALUEDATE, */
ISSUE_PRICE ISSUE_PRICE,
ISSUE_CCY ISSUE_CCY,
SECDFN.FBO_ID_TYPE Issue_Type,
SUBSTR(SECDFN.NAME,1,20) Issue_Short_Name,
SECDFN.NAME Issue_Name,
ISSUER_FBO_ID_NUM Issuer_Code,
ISSUANCE_DATA_GUARANTOR Guarantor,
ACC_COUPON_METHOD Coupon_Index,
YIELD_BASIS YIELD_BASIS,
''NA'' BENEFICIARY,
DEALER_CODE TRADER_ID,
0 Number_Of_Units,
NVL(LB_ACCT_ID,'' '') Current_Account_No,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
0 COST_OF_FUNDS_RATE,
''01-JAN-1900'' Next_Coupon_Date,
0 Coupon_Rate,
NULL Coupon_Frequency,
NULL Issue_Category,
''01-JAN-1900'' Issue_Maturity_Date,
NULL Issue_Govt_Nongov,
''01-JAN-1900'' Last_Coupon_Date,
DEAL_IDENTIFIER,
SETTLEMENT_VALUE_VALUE ACCRUED_TO_DATE,
ACCRUED_TO_DATE_VALUE ACCRUED_VALUE,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT TRANTIME,DEAL_STATE,CPTY_FBO_ID_NUM
,DEAL_NUM,DEALNUMBER,DEALER_CODE,VALUEDATE,CCYCDE,END_DATE,

DEAL_DATE,START_DATE,DEALSUBTYPE,DEAL_TYPE,VERSION,ledger,
LBS_ACCOUNT_BRANCH ACCOUNT_BRANCH,
DEAL_IDENTIFIER DEAL_IDENTIFIER
FROM TRSRY_GL_TRANS
GL,D10113.TT_COM_LOAN@TREASURYPROD REPO WHERE GL.DEALNUMBER
=REPO.DEAL_NUM) GL,
(select * from
D10113.tt_cmloan_cash_flows@TREASURYPROD Cash
where
subtype=''MAIN''
and PARENT_FBO_ID_VER = (select
max(PARENT_FBO_ID_VER) from D10113.tt_cmloan_cash_flows@TREASURYPROD
where parent_fbo_id_num
=cash.parent_fbo_id_num
)) Cash ,
D10113.SD_CPTY@TREASURYPROD CP,
D10113.SD_CPTY_LB_ACCT@TREASURYPROD CPTY,
D10113.SD_SEC_DEFN@TREASURYPROD SECDFN
WHERE GL.DEAL_NUM=Cash.PARENT_FBO_ID_NUM(+)
AND GL.CPTY_FBO_ID_NUM= SECDFN.FBO_ID_NUM(+)
AND GL.CPTY_FBO_ID_NUM= CP.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.CCYCDE = LB_ACCT_CCY(+)
AND GL.ACCOUNT_BRANCH =CPTY.LB_ACCT_BRANCH(+)
AND NVL(IS_DEFAULT(+),''Y'') =''Y''
AND trim(Gl.TRANTIME) >
'''||G_LastBusinessDateRun||'''
AND trim(Gl.TRANTIME) <=
'''||G_Current_Business_Date ||''' ');

EXECUTE IMMEDIATE ('INSERT INTO TREASURY_FEED_STG (


COUNTRY, LE_BOOK,
CUSTOMER_ID,CONTRACT_ID, DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
VISION_OUC, SOURCE_ID,
RECORD_TYPE,PRINCIPAL_GL,
MIS_CURRENCY, ISSUE_ID,
QTY_TRADED, BUY_SELL_IND,
PRICE, YIELD, ISSUE_DATE,
DEAL_DATE,MATURITY_DATE,
SETTLEMENT_DATE, SETTLEMENT_VALUE,
INTREST_RATE, PRINCIPAL_AMOUNT,
DAYS_START_MAT, DAYS_REMAINING_MAT,
INTEREST_RATE, CONTRACT_STATUS,
TRADE_CCY, /*VALUEDATE, */
ISSUE_PRICE,ISSUE_CCY,
Issue_Type, Issue_Short_Name,
Issue_Name,Issuer_Code,
Guarantor,Coupon_Index,
YIELD_BASIS,BENEFICIARY,
TRADER_ID,Number_Of_Units,
Current_Account_No,FEED_DATE,
PRODUCT,RUN_STATUS,
COST_OF_FUNDS_RATE,Next_Coupon_Date,
Coupon_Rate, Coupon_Frequency,
Issue_Category, Issue_Maturity_Date,
Issue_Govt_Nongov, Last_Coupon_Date,
DEAL_IDENTIFIER,
ACCRUED_TO_DATE,
ACCRUED_VALUE,
DATE_LAST_MODIFIED,DATE_CREATION
)
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
DEAL_TYPE DEAL_TYPE,
NVL(DEALSUBTYPE,''MIGRA'') DEAL_SUB_TYPE,
GL.START_DATE START_DATE,
NVL(ACCOUNT_BRANCH,''019'') VISION_OUC,
84 SOURCE_ID,
6 RECORD_TYPE,
''0'' PRINCIPAL_GL,
CCYCDE MIS_CURRENCY,
0 ISSUE_ID,
0 QTY_TRADED,
''B'' BUY_SELL_IND,
0 PRICE,
0 YIELD,
NVL(SECDFN.ISSUE_DATE,''01-JAN-1900'')
ISSUE_DATE,
GL.DEAL_DATE DEAL_DATE,
Gl.END_DATE MATURITY_DATE,
NVL(Gl.END_DATE,''01-JAN-1900'') SETTLEMENT_DATE,
0 SETTLEMENT_VALUE,
ROUND(settlement_rATE*100,2) INTREST_RATE,
NOTIONAL_AMOUNT_VALUE PRINCIPAL_AMOUNT,
0 DAYS_START_MAT,
0 DAYS_REMAINING_MAT,
ROUND(settlement_rATE*100,2) INTEREST_RATE,
DEAL_STATE CONTRACT_STATUS,
CCYCDE TRADE_CCY,
/*VALUEDATE VALUEDATE, */
ISSUE_PRICE ISSUE_PRICE,
ISSUE_CCY ISSUE_CCY,
SECDFN.FBO_ID_TYPE Issue_Type,
SUBSTR(SECDFN.NAME,1,20) Issue_Short_Name,
SECDFN.NAME Issue_Name,
ISSUER_FBO_ID_NUM Issuer_Code,
ISSUANCE_DATA_GUARANTOR Guarantor,
ACC_COUPON_METHOD Coupon_Index,
YIELD_BASIS YIELD_BASIS,
''NA'' BENEFICIARY,
DEALER_CODE TRADER_ID,
0 Number_Of_Units,
NVL(LB_ACCT_ID,'' '') Current_Account_No,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
0 COST_OF_FUNDS_RATE,
''01-JAN-1900'' Next_Coupon_Date,
0 Coupon_Rate,
NULL Coupon_Frequency,
NULL Issue_Category,
''01-JAN-1900'' Issue_Maturity_Date,
NULL Issue_Govt_Nongov,
''01-JAN-1900'' Last_Coupon_Date,
DEAL_IDENTIFIER,
SETTLEMENT_VALUE_VALUE ACCRUED_TO_DATE,
ACCRUED_TO_DATE_VALUE ACCRUED_VALUE,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT TRANTIME,DEAL_STATE,CPTY_FBO_ID_NUM
,DEAL_NUM,DEALNUMBER,DEALER_CODE,VALUEDATE,CCYCDE,END_DATE,

DEAL_DATE,START_DATE,DEALSUBTYPE,DEAL_TYPE,VERSION,ledger,
LBS_ACCOUNT_BRANCH ACCOUNT_BRANCH,
DEAL_IDENTIFIER DEAL_IDENTIFIER
FROM TRSRY_GL_TRANS
GL,D10113.TT_COM_LOAN@TREASURYPROD REPO WHERE GL.DEALNUMBER
=REPO.DEAL_NUM) GL,
(select * from
D10113.tt_cmloan_cash_flows@TREASURYPROD Cash
where
subtype=''MAIN''
and PARENT_FBO_ID_VER = (select
max(PARENT_FBO_ID_VER) from D10113.tt_cmloan_cash_flows@TREASURYPROD
where parent_fbo_id_num
=cash.parent_fbo_id_num
)) Cash ,
D10113.SD_CPTY@TREASURYPROD CP,
D10113.SD_CPTY_LB_ACCT@TREASURYPROD CPTY,
D10113.SD_SEC_DEFN@TREASURYPROD SECDFN
WHERE GL.DEAL_NUM=Cash.PARENT_FBO_ID_NUM(+)
AND GL.CPTY_FBO_ID_NUM= SECDFN.FBO_ID_NUM(+)
AND GL.CPTY_FBO_ID_NUM= CP.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.CCYCDE = LB_ACCT_CCY(+)
AND GL.ACCOUNT_BRANCH =CPTY.LB_ACCT_BRANCH(+)
AND NVL(IS_DEFAULT(+),''Y'') =''Y''
AND trim(Gl.TRANTIME) >
'''||G_LastBusinessDateRun||'''
AND trim(Gl.TRANTIME) <=
'''||G_Current_Business_Date ||''' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GL_TRANS_ALL /
TT_SWAP Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TREASURY_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getTreasCommContStgData;

/*#######################################################################
##################################################
Name : getTreasFXContStgData
Description : Procedure to upload daily FX Contracts
Details data to Vision staging table and from staging
table to the main target table
[TREASURY_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getTreasFXContStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getTreasFXContStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table TREASURY_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO TREASURY_FEED_STG (


COUNTRY, LE_BOOK,
CUSTOMER_ID, CONTRACT_ID,DEAL_IDENTIFIER,
DEAL_TYPE, DEAL_SUB_TYPE,START_DATE,
VISION_OUC, SOURCE_ID, RECORD_TYPE,PRINCIPAL_GL,
MIS_CURRENCY, ISSUE_ID, QTY_TRADED, BUY_SELL_IND,
PRICE, YIELD, ISSUE_DATE,DEAL_DATE,MATURITY_DATE,
SETTLEMENT_DATE, SETTLEMENT_VALUE, INTREST_RATE,
PRINCIPAL_AMOUNT,
DAYS_START_MAT, DAYS_REMAINING_MAT, INTEREST_RATE,
CONTRACT_STATUS,
TRADE_CCY, VALUEDATE, ISSUE_PRICE,ISSUE_CCY,
Issue_Type, Issue_Short_Name, Issue_Name,Issuer_Code,
Guarantor,Coupon_Index, YIELD_BASIS,BENEFICIARY,
TRADER_ID,Number_Of_Units, Current_Account_No,FEED_DATE,
PRODUCT,RUN_STATUS, COST_OF_FUNDS_RATE,Next_Coupon_Date,
Coupon_Rate, Coupon_Frequency, Issue_Category,
Issue_Maturity_Date,
Issue_Govt_Nongov, Last_Coupon_Date,
FACE_VALUE ,QTY_OPEN,EFFECTIVE_YIELD ,Period ,
Security_Type ,CURRENCY_PAIR ,CCY_ONE_AMOUNT_CCY
,CCY_TWO_AMOUNT_CCY ,
CCY_ONE_AMOUNT_VALUE,CCY_TWO_AMOUNT_VALUE,NEAR_RATE
,FAR_RATE ,
NEAR_DATE ,END_DATE,DATE_LAST_MODIFIED,DATE_CREATION
)
select * from TEMP_SPOTFX ');
/*SELECT DISTINCT '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.DEAL_IDENTIFIER,
DEAL_TYPE DEAL_TYPE,
NVL(DEALSUBTYPE,''MIGRA'') DEAL_SUB_TYPE,
START_DATE START_DATE,
NVL(ACCOUNT_BRANCH,''019'') VISION_OUC,
82 SOURCE_ID,
6 RECORD_TYPE,
''0'' PRINCIPAL_GL,
CCYCDE MIS_CURRENCY,
0 ISSUE_ID,
0 QTY_TRADED,
FX_BUY_SELL BUY_SELL_IND,
0 PRICE,
0 YIELD,
NVL(SECDFN.ISSUE_DATE,''01-JAN-1900'') ISSUE_DATE,
GL.DEAL_DATE DEAL_DATE,
NVL(END_DATE,START_DATE) MATURITY_DATE,
NVL(END_DATE,START_DATE) SETTLEMENT_DATE,
0 SETTLEMENT_VALUE,
CONTRACT_RATE INTREST_RATE,
CCY_ONE_AMOUNT_VALUE PRINCIPAL_AMOUNT,
0 DAYS_START_MAT,
0 DAYS_REMAINING_MAT,
CONTRACT_RATE INTEREST_RATE,
DEAL_STATE CONTRACT_STATUS,
CCYCDE TRADE_CCY,
VALUEDATE VALUEDATE,
ISSUE_PRICE ISSUE_PRICE,
ISSUE_CCY ISSUE_CCY,
SECDFN.FBO_ID_TYPE Issue_Type,
SUBSTR(SECDFN.NAME,1,20) Issue_Short_Name,
SECDFN.NAME Issue_Name,
ISSUER_FBO_ID_NUM Issuer_Code,
ISSUANCE_DATA_GUARANTOR Guarantor,
ACC_COUPON_METHOD Coupon_Index,
YIELD_BASIS YIELD_BASIS,
''NA'' BENEFICIARY,
DEALER_CODE TRADER_ID,
0 Number_Of_Units,
NVL(LB_ACCT_ID,'' '') Current_Account_No,
'||''''||G_Current_Business_Date ||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
0 COST_OF_FUNDS_RATE,
''01-JAN-1900'' Next_Coupon_Date,
0 Coupon_Rate,
NULL Coupon_Frequency,
NULL Issue_Category,
''01-JAN-1900'' Issue_Maturity_Date,
NULL Issue_Govt_Nongov,
''01-JAN-1900'' Last_Coupon_Date,
0 FACE_VALUE ,
0 QTY_OPEN ,
0 EFFECTIVE_YIELD ,
0 Period ,
FX_TYPE Security_Type ,
GL.CURRENCY_PAIR ,
GL.CCY_ONE_AMOUNT_CCY ,
GL.CCY_TWO_AMOUNT_CCY ,
GL.CCY_ONE_AMOUNT_VALUE,
GL.CCY_TWO_AMOUNT_VALUE,
CASE WHEN DEAL_TYPE =''FXSPOT'' THEN CONTRACT_RATE
WHEN DEAL_TYPE =''FXOUTL'' THEN FWD_CONTRACT_RATE
WHEN DEAL_TYPE =''FXOUTS'' THEN FWD_CONTRACT_RATE
WHEN DEAL_TYPE =''FXSWAP'' THEN CONTRACT_RATE
ELSE 0 END NEAR_RATE,
CASE WHEN DEAL_TYPE =''FXSPOT'' THEN CONTRACT_RATE
WHEN DEAL_TYPE =''FXOUTL'' THEN FWD_CONTRACT_RATE
WHEN DEAL_TYPE =''FXOUTS'' THEN FWD_CONTRACT_RATE
WHEN DEAL_TYPE =''FXSWAP'' THEN FWD_CONTRACT_RATE
ELSE 0 END FAR_RATE,
CASE WHEN DEAL_TYPE =''FXSPOT'' THEN START_DATE
WHEN DEAL_TYPE =''FXOUTL'' THEN START_DATE
WHEN DEAL_TYPE =''FXOUTS'' THEN START_DATE
WHEN DEAL_TYPE =''FXSWAP'' THEN START_DATE
ELSE START_DATE END NEAR_DATE,
CASE WHEN DEALTYPE =''FXSPOT'' THEN START_DATE
WHEN DEALTYPE =''FXOUTL'' THEN END_DATE
WHEN DEALTYPE =''FXOUTS'' THEN END_DATE
WHEN DEALTYPE =''FXSWAP'' THEN END_DATE
ELSE END_DATE END FAR_DATE ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (select * from temp_SPOT) GL,
D10113.SD_CPTY@TREASURYPROD CP,
D10113.SD_CPTY_LB_ACCT@TREASURYPROD CPTY,
D10113.SD_SEC_DEFN@TREASURYPROD SECDFN
-- ,(select * from gl_translation where
substr(MAPPING_SOURCE_VISION_GL,1,1) in (''5'',''6'')) t1
WHERE GL.CPTY_FBO_ID_NUM= SECDFN.FBO_ID_NUM(+)
AND GL.CPTY_FBO_ID_NUM= CP.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.CCYCDE = LB_ACCT_CCY(+)
AND GL.ACCOUNT_BRANCH =CPTY.LB_ACCT_BRANCH(+)
-- AND GL.LEDGER= T1.VISION_GL
AND NVL(IS_DEFAULT(+),''Y'') =''Y''
AND trunc(Gl.TRANTIME)
>'||''''||G_LastBusinessDateRun ||''''||'');*/

EXECUTE IMMEDIATE ('INSERT INTO TREASURY_FEED_STG (


COUNTRY, LE_BOOK,
CUSTOMER_ID, CONTRACT_ID,DEAL_IDENTIFIER,
DEAL_TYPE, DEAL_SUB_TYPE,START_DATE,
VISION_OUC, SOURCE_ID, RECORD_TYPE,PRINCIPAL_GL,
MIS_CURRENCY, ISSUE_ID, QTY_TRADED, BUY_SELL_IND,
PRICE, YIELD, ISSUE_DATE,DEAL_DATE,MATURITY_DATE,
SETTLEMENT_DATE, SETTLEMENT_VALUE, INTREST_RATE,
PRINCIPAL_AMOUNT,
DAYS_START_MAT, DAYS_REMAINING_MAT, INTEREST_RATE,
CONTRACT_STATUS,
TRADE_CCY, VALUEDATE, ISSUE_PRICE,ISSUE_CCY,
Issue_Type, Issue_Short_Name, Issue_Name,Issuer_Code,
Guarantor,Coupon_Index, YIELD_BASIS,BENEFICIARY,
TRADER_ID,Number_Of_Units, Current_Account_No,FEED_DATE,
PRODUCT,RUN_STATUS, COST_OF_FUNDS_RATE,Next_Coupon_Date,
Coupon_Rate, Coupon_Frequency, Issue_Category,
Issue_Maturity_Date,
Issue_Govt_Nongov, Last_Coupon_Date,
FACE_VALUE ,QTY_OPEN,EFFECTIVE_YIELD ,Period ,
Security_Type ,CURRENCY_PAIR ,CCY_ONE_AMOUNT_CCY
,CCY_TWO_AMOUNT_CCY ,
CCY_ONE_AMOUNT_VALUE,CCY_TWO_AMOUNT_VALUE,NEAR_RATE
,FAR_RATE ,
NEAR_DATE ,END_DATE,DATE_LAST_MODIFIED,DATE_CREATION
)
select * from TEMP_SPOTFX ');
/*SELECT DISTINCT '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.DEAL_IDENTIFIER,
DEAL_TYPE DEAL_TYPE,
NVL(DEALSUBTYPE,''MIGRA'') DEAL_SUB_TYPE,
START_DATE START_DATE,
NVL(ACCOUNT_BRANCH,''019'') VISION_OUC,
82 SOURCE_ID,
6 RECORD_TYPE,
''0'' PRINCIPAL_GL,
CCYCDE MIS_CURRENCY,
0 ISSUE_ID,
0 QTY_TRADED,
FX_BUY_SELL BUY_SELL_IND,
0 PRICE,
0 YIELD,
NVL(SECDFN.ISSUE_DATE,''01-JAN-1900'') ISSUE_DATE,
GL.DEAL_DATE DEAL_DATE,
NVL(END_DATE,START_DATE) MATURITY_DATE,
NVL(END_DATE,START_DATE) SETTLEMENT_DATE,
0 SETTLEMENT_VALUE,
CONTRACT_RATE INTREST_RATE,
CCY_ONE_AMOUNT_VALUE PRINCIPAL_AMOUNT,
0 DAYS_START_MAT,
0 DAYS_REMAINING_MAT,
CONTRACT_RATE INTEREST_RATE,
DEAL_STATE CONTRACT_STATUS,
CCYCDE TRADE_CCY,
VALUEDATE VALUEDATE,
ISSUE_PRICE ISSUE_PRICE,
ISSUE_CCY ISSUE_CCY,
SECDFN.FBO_ID_TYPE Issue_Type,
SUBSTR(SECDFN.NAME,1,20) Issue_Short_Name,
SECDFN.NAME Issue_Name,
ISSUER_FBO_ID_NUM Issuer_Code,
ISSUANCE_DATA_GUARANTOR Guarantor,
ACC_COUPON_METHOD Coupon_Index,
YIELD_BASIS YIELD_BASIS,
''NA'' BENEFICIARY,
DEALER_CODE TRADER_ID,
0 Number_Of_Units,
NVL(LB_ACCT_ID,'' '') Current_Account_No,
'||''''||G_Current_Business_Date ||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
0 COST_OF_FUNDS_RATE,
''01-JAN-1900'' Next_Coupon_Date,
0 Coupon_Rate,
NULL Coupon_Frequency,
NULL Issue_Category,
''01-JAN-1900'' Issue_Maturity_Date,
NULL Issue_Govt_Nongov,
''01-JAN-1900'' Last_Coupon_Date,
0 FACE_VALUE ,
0 QTY_OPEN ,
0 EFFECTIVE_YIELD ,
0 Period ,
FX_TYPE Security_Type ,
GL.CURRENCY_PAIR ,
GL.CCY_ONE_AMOUNT_CCY ,
GL.CCY_TWO_AMOUNT_CCY ,
GL.CCY_ONE_AMOUNT_VALUE,
GL.CCY_TWO_AMOUNT_VALUE,
CASE WHEN DEAL_TYPE =''FXSPOT'' THEN CONTRACT_RATE
WHEN DEAL_TYPE =''FXOUTL'' THEN FWD_CONTRACT_RATE
WHEN DEAL_TYPE =''FXOUTS'' THEN FWD_CONTRACT_RATE
WHEN DEAL_TYPE =''FXSWAP'' THEN CONTRACT_RATE
ELSE 0 END NEAR_RATE,
CASE WHEN DEAL_TYPE =''FXSPOT'' THEN CONTRACT_RATE
WHEN DEAL_TYPE =''FXOUTL'' THEN FWD_CONTRACT_RATE
WHEN DEAL_TYPE =''FXOUTS'' THEN FWD_CONTRACT_RATE
WHEN DEAL_TYPE =''FXSWAP'' THEN FWD_CONTRACT_RATE
ELSE 0 END FAR_RATE,
CASE WHEN DEAL_TYPE =''FXSPOT'' THEN START_DATE
WHEN DEAL_TYPE =''FXOUTL'' THEN START_DATE
WHEN DEAL_TYPE =''FXOUTS'' THEN START_DATE
WHEN DEAL_TYPE =''FXSWAP'' THEN START_DATE
ELSE START_DATE END NEAR_DATE,
CASE WHEN DEALTYPE =''FXSPOT'' THEN START_DATE
WHEN DEALTYPE =''FXOUTL'' THEN END_DATE
WHEN DEALTYPE =''FXOUTS'' THEN END_DATE
WHEN DEALTYPE =''FXSWAP'' THEN END_DATE
ELSE END_DATE END FAR_DATE ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (select * from temp_SPOT) GL,
D10113.SD_CPTY@TREASURYPROD CP,
D10113.SD_CPTY_LB_ACCT@TREASURYPROD CPTY,
D10113.SD_SEC_DEFN@TREASURYPROD SECDFN
-- ,(select * from gl_translation where
substr(MAPPING_SOURCE_VISION_GL,1,1) in (''5'',''6'')) t1
WHERE GL.CPTY_FBO_ID_NUM= SECDFN.FBO_ID_NUM(+)
AND GL.CPTY_FBO_ID_NUM= CP.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.CCYCDE = LB_ACCT_CCY(+)
AND GL.ACCOUNT_BRANCH =CPTY.LB_ACCT_BRANCH(+)
-- AND GL.LEDGER= T1.VISION_GL
AND NVL(IS_DEFAULT(+),''Y'') =''Y''
AND trunc(Gl.TRANTIME)
>'||''''||G_LastBusinessDateRun ||''''||'');*/

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GL_TRANS_ALL /
TT_SWAP Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TREASURY_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getTreasFXContStgData;

/*#######################################################################
##################################################
Name : getTreasDlySecStgData
Description : Procedure to upload daily SEC
Enrichment for Details data to Vision staging table and from staging
table to the main target table
[TREASURY_FINANCIAL_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getTreasDlySecStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getTreasDlySecStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table


TREASURY_FINANCIAL_FEED_STG population......');

BEGIN
writeLogInfo('INSERT INTO TREASURY_FINANCIAL_FEED_STG (
COUNTRY, LE_BOOK,
CUSTOMER_ID, CONTRACT_ID,
OFFICE_ACCOUNT, VISION_GL,
VISION_OUC,COST_CENTER,
CURRENCY,MIS_CURRENCY,LB_ACCT_ID,
TRAN_TYPE, TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE, FEED_DATE,
PRODUCT,RUN_STATUS ,
DATE_LAST_MODIFIED, DATE_CREATION)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
GL.CCYCDE CURRENCY,
GL.CCYCDE MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '' ) LB_ACCT_ID,
DECODE(AMOUNT*-1, ABS(AMOUNT*-1), ''C'', ''D'')
TRAN_TYPE,
ABS(GL.AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
''FT-SECU'' SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (
SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,ledger,deal_date,
LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,
AMOUNT,CCYCDE ,GL.TRANTIME
FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_BS@TREASURYPROD SEC WHERE GL.DEALNUMBER = SEC.DEAL_NUM
AND gl.ledger not in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6'')) ) gl,
(select CPTY_ID_NUM,lb_acct_id from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.DEAL_STATE = ''STRT''
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
and trunc(GL.trantime)<=
'''||G_Current_Business_Date ||'''
UNION ALL
SELECT '||
''''||P_Country||'''' ||'
COUNTRY, '||

''''||P_Le_Book||'''' ||' LE_BOOK,


CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
GL.CCYCDE CURRENCY,
GL.CCYCDE
MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '' ) LB_ACCT_ID,
DECODE(AMOUNT*-1, ABS(AMOUNT*-1), ''C'',
''D'') TRAN_TYPE,
ABS(GL.AMOUNT) TRAN_AMT,

'||''''||G_Current_Business_Date ||''''||' TRAN_DATE,

'||''''||G_Current_Business_Date ||''''||' VALUE_DATE,


''FT-SECU''
SCHM_TYPE,

'||''''||G_Current_Business_Date ||''''||' FEED_DATE,

'||''''||G_Feed_Name||''''||' PRODUCT,
''N''
RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,ledger,

LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM, AMOUNT,CCYCDE ,deal_date,GL.TRANTIME


FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_HDG@TREASURYPROD SEC WHERE GL.DEALNUMBER = SEC.DEAL_NUM
AND gl.ledger not in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl,1,1) IN (''5'',
''6'')) ) GL,
(select CPTY_ID_NUM,lb_acct_id from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
and trunc(GL.trantime)<=
'''||G_Current_Business_Date ||'''
UNION ALL
SELECT

'||''''||P_Country||'''' ||' COUNTRY, '||

''''||P_Le_Book||'''' ||' LE_BOOK,


CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
GL.CCYCDE
MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '' ) LB_ACCT_ID,
DECODE(LBS_AMOUNT*-1, ABS(LBS_AMOUNT*-1),
''C'', ''D'') TRAN_TYPE,
ABS(GL.LBS_AMOUNT) TRAN_AMT,

'||''''||G_Current_Business_Date ||''''||' TRAN_DATE,

'||''''||G_Current_Business_Date ||''''||' VALUE_DATE,


''FT-SECU''
SCHM_TYPE,

'||''''||G_Current_Business_Date ||''''||' FEED_DATE,

'||''''||G_Feed_Name||''''||' PRODUCT,
''N''
RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,ledger,

LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM, GL.TRANTIME,
LBS_AMOUNT ,
case when foracid is null then ''MUR'' else
CCYCDE end CCYCDE
FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_BS@TREASURYPROD SEC,TEMP_GAM GAM
WHERE
GL.DEALNUMBER = SEC.DEAL_NUM
AND gl.ledger in
(SELECT vision_gl FROM gl_translation WHERE SUBSTR
(mapping_source_vision_gl, 1, 1) IN (''5'', ''6''))
AND GL.LBS_ACCOUNT_ID =FORACID(+) ) GL,
(select CPTY_ID_NUM,lb_acct_id from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
and to_char(GL.trantime,''DD-MON-
RRRR'')= '''||G_Current_Business_Date ||'''
UNION ALL
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||'
LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
LBS_ACCOUNT_ID
OFFICE_ACCOUNT,
--SUBSTR(LBS_ACCOUNT_ID,4,5)
VISION_GL,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
GL.CCYCDE
MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '') LB_ACCT_ID,
DECODE(LBS_AMOUNT*-1, ABS(LBS_AMOUNT*-1),
''C'', ''D'') TRAN_TYPE,
ABS(LBS_AMOUNT) TRAN_AMT,

'||''''||G_Current_Business_Date ||''''||' TRAN_DATE,

'||''''||G_Current_Business_Date ||''''||' VALUE_DATE,


''FT-SECU''
SCHM_TYPE,

'||''''||G_Current_Business_Date ||''''||' FEED_DATE,

'||''''||G_Feed_Name||''''||' PRODUCT,
''N''
RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,LEDGER,

LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,
LBS_AMOUNT ,
CASE WHEN
FORACID IS NULL THEN ''MUR'' ELSE CCYCDE END CCYCDE ,ACCNUM,TRANTIME
FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_HDG@TREASURYPROD SEC ,TEMP_GAM GAM
WHERE GL.DEALNUMBER = SEC.DEAL_NUM
AND gl.ledger in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6''))
AND GL.LBS_ACCOUNT_ID =FORACID(+) ) GL,
D10113.SD_CPTY@TREASURYPROD CP,
(select CPTY_ID_NUM,lb_acct_id from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE GL.CPTY_FBO_ID_NUM= CP.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND LBS_ACCOUNT_ID IS NOT NULL
and
to_char(GL.trantime,''DD-MON-RRRR'')= '''||G_Current_Business_Date ||'''
');

EXECUTE IMMEDIATE ('INSERT INTO


TREASURY_FINANCIAL_FEED_STG (
COUNTRY, LE_BOOK,
CUSTOMER_ID, CONTRACT_ID,
OFFICE_ACCOUNT, VISION_GL,
VISION_OUC,COST_CENTER,
CURRENCY,MIS_CURRENCY,LB_ACCT_ID,
TRAN_TYPE, TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE, FEED_DATE,
PRODUCT,RUN_STATUS ,
DATE_LAST_MODIFIED, DATE_CREATION)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
GL.CCYCDE CURRENCY,
GL.CCYCDE MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '' ) LB_ACCT_ID,
DECODE(AMOUNT*-1, ABS(AMOUNT*-1), ''C'', ''D'')
TRAN_TYPE,
ABS(GL.AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
'||''''||G_Current_Business_Date ||''''||'
VALUE_DATE,
''FT-SECU'' SCHM_TYPE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (
SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,ledger,deal_date,
LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,
AMOUNT,CCYCDE ,GL.TRANTIME
FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_BS@TREASURYPROD SEC WHERE GL.DEALNUMBER = SEC.DEAL_NUM
AND gl.ledger not in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6'')) ) gl,
(select CPTY_ID_NUM,lb_acct_id from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.DEAL_STATE = ''STRT''
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
and trunc(GL.trantime)<=
'''||G_Current_Business_Date ||'''
UNION ALL
SELECT '||
''''||P_Country||'''' ||'
COUNTRY, '||

''''||P_Le_Book||'''' ||' LE_BOOK,


CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
GL.CCYCDE CURRENCY,
GL.CCYCDE
MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '' ) LB_ACCT_ID,
DECODE(AMOUNT*-1, ABS(AMOUNT*-1), ''C'',
''D'') TRAN_TYPE,
ABS(GL.AMOUNT) TRAN_AMT,

'||''''||G_Current_Business_Date ||''''||' TRAN_DATE,

'||''''||G_Current_Business_Date ||''''||' VALUE_DATE,


''FT-SECU''
SCHM_TYPE,

'||''''||G_Current_Business_Date ||''''||' FEED_DATE,

'||''''||G_Feed_Name||''''||' PRODUCT,
''N''
RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,ledger,

LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM, AMOUNT,CCYCDE ,deal_date,GL.TRANTIME


FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_HDG@TREASURYPROD SEC WHERE GL.DEALNUMBER = SEC.DEAL_NUM
AND gl.ledger not in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl,1,1) IN (''5'',
''6'')) ) GL,
(select CPTY_ID_NUM,lb_acct_id from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
and trunc(GL.trantime)<=
'''||G_Current_Business_Date ||'''
UNION ALL
SELECT

'||''''||P_Country||'''' ||' COUNTRY, '||

''''||P_Le_Book||'''' ||' LE_BOOK,


CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
GL.CCYCDE
MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '' ) LB_ACCT_ID,
DECODE(LBS_AMOUNT*-1, ABS(LBS_AMOUNT*-1),
''C'', ''D'') TRAN_TYPE,
ABS(GL.LBS_AMOUNT) TRAN_AMT,

'||''''||G_Current_Business_Date ||''''||' TRAN_DATE,

'||''''||G_Current_Business_Date ||''''||' VALUE_DATE,


''FT-SECU''
SCHM_TYPE,

'||''''||G_Current_Business_Date ||''''||' FEED_DATE,

'||''''||G_Feed_Name||''''||' PRODUCT,
''N''
RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,ledger,
LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM, GL.TRANTIME,
LBS_AMOUNT ,
case when foracid is null then ''MUR'' else
CCYCDE end CCYCDE
FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_BS@TREASURYPROD SEC,TEMP_GAM GAM
WHERE
GL.DEALNUMBER = SEC.DEAL_NUM
AND gl.ledger in
(SELECT vision_gl FROM gl_translation WHERE SUBSTR
(mapping_source_vision_gl, 1, 1) IN (''5'', ''6''))
AND GL.LBS_ACCOUNT_ID =FORACID(+) ) GL,
(select CPTY_ID_NUM,lb_acct_id from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
and to_char(GL.trantime,''DD-MON-
RRRR'')= '''||G_Current_Business_Date ||'''
UNION ALL
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||'
LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
LBS_ACCOUNT_ID
OFFICE_ACCOUNT,
--SUBSTR(LBS_ACCOUNT_ID,4,5)
VISION_GL,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
GL.CCYCDE
MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '') LB_ACCT_ID,
DECODE(LBS_AMOUNT*-1, ABS(LBS_AMOUNT*-1),
''C'', ''D'') TRAN_TYPE,
ABS(LBS_AMOUNT) TRAN_AMT,

'||''''||G_Current_Business_Date ||''''||' TRAN_DATE,

'||''''||G_Current_Business_Date ||''''||' VALUE_DATE,


''FT-SECU''
SCHM_TYPE,

'||''''||G_Current_Business_Date ||''''||' FEED_DATE,

'||''''||G_Feed_Name||''''||' PRODUCT,
''N''
RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,LEDGER,

LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,
LBS_AMOUNT ,
CASE WHEN
FORACID IS NULL THEN ''MUR'' ELSE CCYCDE END CCYCDE ,ACCNUM,TRANTIME
FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_HDG@TREASURYPROD SEC ,TEMP_GAM GAM
WHERE GL.DEALNUMBER = SEC.DEAL_NUM
AND gl.ledger in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6''))
AND GL.LBS_ACCOUNT_ID =FORACID(+) ) GL,
D10113.SD_CPTY@TREASURYPROD CP,
(select CPTY_ID_NUM,lb_acct_id from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE GL.CPTY_FBO_ID_NUM= CP.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND LBS_ACCOUNT_ID IS NOT NULL
and
to_char(GL.trantime,''DD-MON-RRRR'')= '''||G_Current_Business_Date ||'''
');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GL_TRANS_ALL /
TT_SEC_BS Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TREASURY_FINANCIAL_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Beginning staging table Cards


TREASURY_FINANCIAL_FEED_STG population......');
BEGIN

writeLogInfo('Beginning staging table Cards


TREASURY_FINANCIAL_FEED_STG population...Missing ACCOUNTS ...');

writeLogInfo(' INSERT INTO TREASURY_FINANCIAL_FEED_STG (


COUNTRY, LE_BOOK,
CUSTOMER_ID, CONTRACT_ID,
OFFICE_ACCOUNT, VISION_GL,
VISION_OUC,COST_CENTER,
CURRENCY,MIS_CURRENCY,LB_ACCT_ID,
TRAN_TYPE, TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE, FEED_DATE,
PRODUCT,RUN_STATUS ,
DATE_LAST_MODIFIED, DATE_CREATION)
select * from (
SELECT
'||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
--SUBSTR(LBS_ACCOUNT_ID,4,5) VISION_GL,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
GL.CCYCDE CURRENCY,
GL.CCYCDE
MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '' ) LB_ACCT_ID,
DECODE(AMOUNT*-1, ABS(AMOUNT*-1), ''C'',
''D'') TRAN_TYPE,
ABS(GL.AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-SECU'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,ledger,GL.T
RANTIME,
AMOUNT,CCYCDE FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_BS@TREASURYPROD SEC WHERE GL.DEALNUMBER = SEC.DEAL_NUM
AND gl.ledger not in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6''))
) GL,
(select CPTY_ID_NUM,lb_acct_id from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.DEAL_STATE = ''STRT''
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
and trunc(GL.trantime)<=
'''||G_Current_Business_Date ||'''
UNION ALL
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
GL.CCYCDE CURRENCY,
GL.CCYCDE
MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '' ) LB_ACCT_ID,
DECODE(AMOUNT*-1, ABS(AMOUNT*-1), ''C'',
''D'') TRAN_TYPE,
ABS(GL.AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-SECU'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,ledger,GL.T
RANTIME,
AMOUNT,CCYCDE FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_HDG@TREASURYPROD SEC WHERE GL.DEALNUMBER = SEC.DEAL_NUM
AND gl.ledger not in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6''))
) GL,
(select CPTY_ID_NUM,lb_acct_id from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
and trunc(GL.trantime)<=
'''||G_Current_Business_Date ||'''
UNION ALL
SELECT --/*+ INDEX
(D10113.GL_TRANS@TREASURYPROD ,GL_TRANS_NY_ACCOUNT)*/
'||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
--SUBSTR(LBS_ACCOUNT_ID,4,5) VISION_GL,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
GL.CCYCDE MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '' ) LB_ACCT_ID,
DECODE(LBS_AMOUNT*-1, ABS(LBS_AMOUNT*-1),
''C'', ''D'') TRAN_TYPE,
ABS(GL.LBS_AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-SECU'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,
GL.TRANTIME,
LBS_AMOUNT ,
CASE WHEN FORACID IS NULL THEN
''MUR'' ELSE CCYCDE END CCYCDE,ledger
FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_BS@TREASURYPROD SEC,TEMP_GAM GAM
WHERE GL.DEALNUMBER = SEC.DEAL_NUM
AND gl.ledger in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6''))
AND GL.LBS_ACCOUNT_ID =FORACID(+) ) GL,
D10113.SD_CPTY_LB_ACCT@TREASURYPROD CPTY
WHERE GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND NVL(IS_DEFAULT(+),''Y'') =''Y''
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
And to_char(GL.trantime,''DD-MON-RRRR'')=
'''||G_Current_Business_Date ||'''
UNION ALL
SELECT --/*+ INDEX
(D10113.GL_TRANS@TREASURYPROD ,GL_TRANS_NY_ACCOUNT)*/
'||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER
CONTRACT_ID,
LBS_ACCOUNT_ID
OFFICE_ACCOUNT,
--SUBSTR(LBS_ACCOUNT_ID,4,5) VISION_GL,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
GL.CCYCDE MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '')
LB_ACCT_ID,
DECODE(LBS_AMOUNT*-1, ABS(LBS_AMOUNT*-1),
''C'', ''D'') TRAN_TYPE,
ABS(LBS_AMOUNT)
TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-SECU'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,
LBS_AMOUNT ,LEDGER,
CASE WHEN FORACID IS NULL THEN
''MUR'' ELSE CCYCDE END CCYCDE ,ACCNUM,TRANTIME
FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_HDG@TREASURYPROD SEC,TEMP_GAM GAM
WHERE GL.DEALNUMBER = SEC.DEAL_NUM
AND gl.ledger in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6''))
AND GL.LBS_ACCOUNT_ID =FORACID(+) )
GL,
D10113.SD_CPTY@TREASURYPROD CP,
(select CPTY_ID_NUM,lb_acct_id from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE GL.CPTY_FBO_ID_NUM= CP.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND LBS_ACCOUNT_ID IS NOT NULL
and to_char(GL.trantime,''DD-MON-RRRR'')=
'''||G_Current_Business_Date ||'''
) T1
where not exists
(select ''X'' from
TREASURY_FINANCIAL_FEED_STG t2
where t2.country ='''||P_COUNTRY||'''
ANd T2.Le_book ='''||P_LE_BOOK||'''
and t2.feed_date
='||''''||G_Current_Business_Date ||''''||'
and t2.product = ''TRDLYSECURITY''
and t1.country =t2.country
and t1.le_book =t2.le_book
and t1.product =t2.product
and t1.feed_date =t2.feed_date
and t1.office_account =t2.office_account )
');

EXECUTE IMMEDIATE (' INSERT INTO


TREASURY_FINANCIAL_FEED_STG (
COUNTRY, LE_BOOK,
CUSTOMER_ID, CONTRACT_ID,
OFFICE_ACCOUNT, VISION_GL,
VISION_OUC,COST_CENTER,
CURRENCY,MIS_CURRENCY,LB_ACCT_ID,
TRAN_TYPE, TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE, FEED_DATE,
PRODUCT,RUN_STATUS ,
DATE_LAST_MODIFIED, DATE_CREATION)
select * from (
SELECT
'||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
--SUBSTR(LBS_ACCOUNT_ID,4,5) VISION_GL,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
GL.CCYCDE CURRENCY,
GL.CCYCDE
MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '' ) LB_ACCT_ID,
DECODE(AMOUNT*-1, ABS(AMOUNT*-1), ''C'',
''D'') TRAN_TYPE,
ABS(GL.AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-SECU'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,ledger,GL.T
RANTIME,
AMOUNT,CCYCDE FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_BS@TREASURYPROD SEC WHERE GL.DEALNUMBER = SEC.DEAL_NUM
AND gl.ledger not in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6''))
) GL,
(select CPTY_ID_NUM,lb_acct_id from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.DEAL_STATE = ''STRT''
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
and trunc(GL.trantime)<=
'''||G_Current_Business_Date ||'''
UNION ALL
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
GL.CCYCDE CURRENCY,
GL.CCYCDE
MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '' ) LB_ACCT_ID,
DECODE(AMOUNT*-1, ABS(AMOUNT*-1), ''C'',
''D'') TRAN_TYPE,
ABS(GL.AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-SECU'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,ledger,GL.T
RANTIME,
AMOUNT,CCYCDE FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_HDG@TREASURYPROD SEC WHERE GL.DEALNUMBER = SEC.DEAL_NUM
AND gl.ledger not in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6''))
) GL,
(select CPTY_ID_NUM,lb_acct_id from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
and trunc(GL.trantime)<=
'''||G_Current_Business_Date ||'''
UNION ALL
SELECT --/*+ INDEX
(D10113.GL_TRANS@TREASURYPROD ,GL_TRANS_NY_ACCOUNT)*/
'||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
--SUBSTR(LBS_ACCOUNT_ID,4,5) VISION_GL,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
GL.CCYCDE MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '' ) LB_ACCT_ID,
DECODE(LBS_AMOUNT*-1, ABS(LBS_AMOUNT*-1),
''C'', ''D'') TRAN_TYPE,
ABS(GL.LBS_AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-SECU'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,
GL.TRANTIME,
LBS_AMOUNT ,
CASE WHEN FORACID IS NULL THEN
''MUR'' ELSE CCYCDE END CCYCDE,ledger
FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_BS@TREASURYPROD SEC,TEMP_GAM GAM
WHERE GL.DEALNUMBER = SEC.DEAL_NUM
AND gl.ledger in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6''))
AND GL.LBS_ACCOUNT_ID =FORACID(+) ) GL,
D10113.SD_CPTY_LB_ACCT@TREASURYPROD CPTY
WHERE GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND NVL(IS_DEFAULT(+),''Y'') =''Y''
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
And to_char(GL.trantime,''DD-MON-RRRR'')=
'''||G_Current_Business_Date ||'''
UNION ALL
SELECT --/*+ INDEX
(D10113.GL_TRANS@TREASURYPROD ,GL_TRANS_NY_ACCOUNT)*/
'||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER
CONTRACT_ID,
LBS_ACCOUNT_ID
OFFICE_ACCOUNT,
--SUBSTR(LBS_ACCOUNT_ID,4,5) VISION_GL,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
GL.CCYCDE MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '')
LB_ACCT_ID,
DECODE(LBS_AMOUNT*-1, ABS(LBS_AMOUNT*-1),
''C'', ''D'') TRAN_TYPE,
ABS(LBS_AMOUNT)
TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-SECU'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,
LBS_AMOUNT ,LEDGER,
CASE WHEN FORACID IS NULL THEN
''MUR'' ELSE CCYCDE END CCYCDE ,ACCNUM,TRANTIME
FROM TRSRY_GL_TRANS
GL,D10113.TT_SEC_HDG@TREASURYPROD SEC,TEMP_GAM GAM
WHERE GL.DEALNUMBER = SEC.DEAL_NUM
AND gl.ledger in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6''))
AND GL.LBS_ACCOUNT_ID =FORACID(+) )
GL,
D10113.SD_CPTY@TREASURYPROD CP,
(select CPTY_ID_NUM,lb_acct_id from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE GL.CPTY_FBO_ID_NUM= CP.FBO_ID_NUM
AND GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND LBS_ACCOUNT_ID IS NOT NULL
and to_char(GL.trantime,''DD-MON-RRRR'')=
'''||G_Current_Business_Date ||'''
) T1
where not exists
(select ''X'' from
TREASURY_FINANCIAL_FEED_STG t2
where t2.country ='''||P_COUNTRY||'''
ANd T2.Le_book ='''||P_LE_BOOK||'''
and t2.feed_date
='||''''||G_Current_Business_Date ||''''||'
and t2.product = ''TRDLYSECURITY''
and t1.country =t2.country
and t1.le_book =t2.le_book
and t1.product =t2.product
and t1.feed_date =t2.feed_date
and t1.office_account =t2.office_account )
');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GL_TRANS_ALL /
TT_SWAP Does not exists/not accessiable !! Aborting execution.');
RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TREASURY_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getTreasDlySecStgData;

/*#######################################################################
##################################################
Name : getTreasDlySwapStgData
Description : Procedure to upload daily SEC
Enrichment for Details data to Vision staging table and from staging
table to the main target table
[TREASURY_FINANCIAL_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getTreasDlySwapStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);
BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getTreasDlySwapStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table


TREASURY_FINANCIAL_FEED_STG population......');
BEGIN

writeLogInfo('INSERT INTO TREASURY_FINANCIAL_FEED_STG (


COUNTRY, LE_BOOK,
CUSTOMER_ID, CONTRACT_ID,
OFFICE_ACCOUNT, VISION_GL,
VISION_OUC,COST_CENTER,
CURRENCY,MIS_CURRENCY,LB_ACCT_ID,
TRAN_TYPE, TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE, FEED_DATE,
PRODUCT,RUN_STATUS ,
DATE_LAST_MODIFIED, DATE_CREATION)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||'
LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
SUBSTR(LBS_ACCOUNT_ID,4,5) VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
GL.CCYCDE CURRENCY,
GL.CCYCDE
MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '' ) LB_ACCT_ID,
DECODE(AMOUNT*-1, ABS(AMOUNT*-1), ''C'',
''D'') TRAN_TYPE,
ABS(GL.AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-SWAP'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,
LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,

AMOUNT,CCYCDE,ACCNUM,TRANTIME,ledger
FROM d10113.GL_TRANS@treasuryprod
GL,D10113.TT_SWAP@TREASURYPROD SEC WHERE GL.DEALNUMBER = SEC.DEAL_NUM
) GL,
D10113.SD_CPTY_LB_ACCT@TREASURYPROD CPTY
WHERE GL.CPTY_FBO_ID_NUM =
CPTY.CPTY_ID_NUM(+)
AND GL.LBS_ACCOUNT_BRANCH
=CPTY.LB_ACCT_BRANCH(+)
AND GL.CCYCDE = CPTY.LB_ACCT_CCY(+)
AND gl.ledger not in (SELECT vision_gl
FROM gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN
(''5'', ''6''))
AND NVL(IS_DEFAULT(+),''Y'') =''Y''
AND GL.DEAL_STATE = ''STRT''
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
UNION ALL
SELECT DISTINCT
'||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
T1.CPTY_FBO_ID_NUM CUSTOMER_ID,
T1.DEAL_NUM CONTRACT_ID,
T3.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
SUBSTR(T3.LBS_ACCOUNT_ID,4,5)
VISION_GL,
NVL(T3.LBS_ACCOUNT_BRANCH ,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
PL_CURRENCY
MIS_CURRENCY,
NULL LB_ACCT_ID,
T4.DR_CR_INDICATOR TRAN_TYPE,

ABS(DECODE(T4.DR_CR_INDICATOR,''D'',T2.ACC_CONTRACT_DELTA*NVL(T2.LCY_CONV
_RATE,1) *-1,T2.ACC_CONTRACT_DELTA*NVL(T2.LCY_CONV_RATE,1))) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-SWAP'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
D10113.TT_SWAP@TREASURYPROD T1,
D10113.EOD_RESULTS@TREASURYPROD T2,
d10113.GL_TRANS@treasuryprod T3,
D10113.SD_GL_KEYS@TREASURYPROD T4
WHERE
T1.DEAL_NUM = T2.DEAL_NUM
AND T1.SUBTYPE_FBO_ID_NUM =
T4.SUBTYPE_FBO_ID_NUM
AND T1.DEAL_TYPE =''SWAP''
AND T1.DEAL_TYPE = T4.DEAL_TYPE
AND T4.DEAL_EVENT_CODE = ''AC''
AND T4.DEAL_AMOUNT_CODE = ''AE''
AND ACC_INC_EXP =''E''
AND T2.ACC_CONTRACT_DELTA !=0
AND T1.DEAL_NUM =T3.DEALNUMBER
AND T3.DEALTYPE=T2.DEAL_TYPE
AND T2.EOD_DATE=T3.VALUEDATE
AND T2.EOD_DATE >
'''||G_LastBusinessDateRun ||'''
AND T2.EOD_DATE <=
'''||G_Current_Business_Date ||'''
AND T2.ACC_CONTRACT_DELTA IS NOT NULL
AND T4.DEAL_EVENT_CODE = T3.EVENT
AND T4.LEDGER_CODE = T3.LEDGER
AND T3.ledger in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6''))
AND T3.ACCNUM like ''%INTEXPENS-E''
UNION ALL
SELECT DISTINCT
'||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
T1.CPTY_FBO_ID_NUM CUSTOMER_ID,
T1.DEAL_NUM CONTRACT_ID,
T3.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
SUBSTR(T3.LBS_ACCOUNT_ID,4,5)
VISION_GL,
NVL( T3.LBS_ACCOUNT_BRANCH ,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
PL_CURRENCY
MIS_CURRENCY,
NULL LB_ACCT_ID,
T4.DR_CR_INDICATOR TRAN_TYPE,

ABS(DECODE(T4.DR_CR_INDICATOR,''D'',T2.ACC_CONTRACT_DELTA*NVL(T2.LCY_CONV
_RATE,1) *-1,T2.ACC_CONTRACT_DELTA*NVL(T2.LCY_CONV_RATE,1))) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-SWAP'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
D10113.TT_SWAP@TREASURYPROD T1,
D10113.EOD_RESULTS@TREASURYPROD T2,
d10113.GL_TRANS@treasuryprod T3,
D10113.SD_GL_KEYS@TREASURYPROD T4
WHERE
T1.DEAL_NUM = T2.DEAL_NUM
AND T1.SUBTYPE_FBO_ID_NUM =
T4.SUBTYPE_FBO_ID_NUM
AND T1.DEAL_TYPE =''SWAP''
AND T1.DEAL_TYPE = T4.DEAL_TYPE
AND T4.DEAL_EVENT_CODE = ''AC''
AND T4.DEAL_AMOUNT_CODE = ''AI''
AND ACC_INC_EXP =''I''
AND T2.ACC_CONTRACT_DELTA !=0
AND T1.DEAL_NUM =T3.DEALNUMBER
AND T3.DEALTYPE=T2.DEAL_TYPE
AND T2.EOD_DATE=T3.VALUEDATE
AND T2.EOD_DATE >
'''||G_LastBusinessDateRun ||'''
AND T2.EOD_DATE <=
'''||G_Current_Business_Date ||'''
AND T2.ACC_CONTRACT_DELTA IS NOT NULL
AND T4.DEAL_EVENT_CODE = T3.EVENT
AND T4.LEDGER_CODE = T3.LEDGER
AND T3.ledger in (SELECT vision_gl
FROM gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN
(''5'', ''6''))
AND T3.ACCNUM like ''%INTINCOME-I''
');

EXECUTE IMMEDIATE ('INSERT INTO


TREASURY_FINANCIAL_FEED_STG (
COUNTRY, LE_BOOK,
CUSTOMER_ID, CONTRACT_ID,
OFFICE_ACCOUNT, VISION_GL,
VISION_OUC,COST_CENTER,
CURRENCY,MIS_CURRENCY,LB_ACCT_ID,
TRAN_TYPE, TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE, FEED_DATE,
PRODUCT,RUN_STATUS ,
DATE_LAST_MODIFIED, DATE_CREATION)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||'
LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
SUBSTR(LBS_ACCOUNT_ID,4,5) VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
GL.CCYCDE CURRENCY,
GL.CCYCDE
MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '' ) LB_ACCT_ID,
DECODE(AMOUNT*-1, ABS(AMOUNT*-1), ''C'',
''D'') TRAN_TYPE,
ABS(GL.AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-SWAP'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,
LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,

AMOUNT,CCYCDE,ACCNUM,TRANTIME,ledger
FROM d10113.GL_TRANS@treasuryprod
GL,D10113.TT_SWAP@TREASURYPROD SEC WHERE GL.DEALNUMBER = SEC.DEAL_NUM
) GL,
D10113.SD_CPTY_LB_ACCT@TREASURYPROD CPTY
WHERE GL.CPTY_FBO_ID_NUM =
CPTY.CPTY_ID_NUM(+)
AND GL.LBS_ACCOUNT_BRANCH
=CPTY.LB_ACCT_BRANCH(+)
AND GL.CCYCDE = CPTY.LB_ACCT_CCY(+)
AND gl.ledger not in (SELECT vision_gl
FROM gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN
(''5'', ''6''))
AND NVL(IS_DEFAULT(+),''Y'') =''Y''
AND GL.DEAL_STATE = ''STRT''
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
UNION ALL
SELECT DISTINCT
'||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
T1.CPTY_FBO_ID_NUM CUSTOMER_ID,
T1.DEAL_NUM CONTRACT_ID,
T3.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
SUBSTR(T3.LBS_ACCOUNT_ID,4,5)
VISION_GL,
NVL(T3.LBS_ACCOUNT_BRANCH ,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
PL_CURRENCY
MIS_CURRENCY,
NULL LB_ACCT_ID,
T4.DR_CR_INDICATOR TRAN_TYPE,

ABS(DECODE(T4.DR_CR_INDICATOR,''D'',T2.ACC_CONTRACT_DELTA*NVL(T2.LCY_CONV
_RATE,1) *-1,T2.ACC_CONTRACT_DELTA*NVL(T2.LCY_CONV_RATE,1))) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-SWAP'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
D10113.TT_SWAP@TREASURYPROD T1,
D10113.EOD_RESULTS@TREASURYPROD T2,
d10113.GL_TRANS@treasuryprod T3,
D10113.SD_GL_KEYS@TREASURYPROD T4
WHERE
T1.DEAL_NUM = T2.DEAL_NUM
AND T1.SUBTYPE_FBO_ID_NUM =
T4.SUBTYPE_FBO_ID_NUM
AND T1.DEAL_TYPE =''SWAP''
AND T1.DEAL_TYPE = T4.DEAL_TYPE
AND T4.DEAL_EVENT_CODE = ''AC''
AND T4.DEAL_AMOUNT_CODE = ''AE''
AND ACC_INC_EXP =''E''
AND T2.ACC_CONTRACT_DELTA !=0
AND T1.DEAL_NUM =T3.DEALNUMBER
AND T3.DEALTYPE=T2.DEAL_TYPE
AND T2.EOD_DATE=T3.VALUEDATE
AND T2.EOD_DATE >
'''||G_LastBusinessDateRun ||'''
AND T2.EOD_DATE <=
'''||G_Current_Business_Date ||'''
AND T2.ACC_CONTRACT_DELTA IS NOT NULL
AND T4.DEAL_EVENT_CODE = T3.EVENT
AND T4.LEDGER_CODE = T3.LEDGER
AND T3.ledger in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6''))
AND T3.ACCNUM like ''%INTEXPENS-E''
UNION ALL
SELECT DISTINCT
'||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
T1.CPTY_FBO_ID_NUM CUSTOMER_ID,
T1.DEAL_NUM CONTRACT_ID,
T3.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
SUBSTR(T3.LBS_ACCOUNT_ID,4,5)
VISION_GL,
NVL( T3.LBS_ACCOUNT_BRANCH ,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
PL_CURRENCY
MIS_CURRENCY,
NULL LB_ACCT_ID,
T4.DR_CR_INDICATOR TRAN_TYPE,

ABS(DECODE(T4.DR_CR_INDICATOR,''D'',T2.ACC_CONTRACT_DELTA*NVL(T2.LCY_CONV
_RATE,1) *-1,T2.ACC_CONTRACT_DELTA*NVL(T2.LCY_CONV_RATE,1))) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-SWAP'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
D10113.TT_SWAP@TREASURYPROD T1,
D10113.EOD_RESULTS@TREASURYPROD T2,
d10113.GL_TRANS@treasuryprod T3,
D10113.SD_GL_KEYS@TREASURYPROD T4
WHERE
T1.DEAL_NUM = T2.DEAL_NUM
AND T1.SUBTYPE_FBO_ID_NUM =
T4.SUBTYPE_FBO_ID_NUM
AND T1.DEAL_TYPE =''SWAP''
AND T1.DEAL_TYPE = T4.DEAL_TYPE
AND T4.DEAL_EVENT_CODE = ''AC''
AND T4.DEAL_AMOUNT_CODE = ''AI''
AND ACC_INC_EXP =''I''
AND T2.ACC_CONTRACT_DELTA !=0
AND T1.DEAL_NUM =T3.DEALNUMBER
AND T3.DEALTYPE=T2.DEAL_TYPE
AND T2.EOD_DATE=T3.VALUEDATE
AND T2.EOD_DATE >
'''||G_LastBusinessDateRun ||'''
AND T2.EOD_DATE <=
'''||G_Current_Business_Date ||'''
AND T2.ACC_CONTRACT_DELTA IS NOT NULL
AND T4.DEAL_EVENT_CODE = T3.EVENT
AND T4.LEDGER_CODE = T3.LEDGER
AND T3.ledger in (SELECT vision_gl
FROM gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN
(''5'', ''6''))
AND T3.ACCNUM like ''%INTINCOME-I''
');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GL_TRANS_ALL /
TT_SWAP Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TREASURY_FINANCIAL_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getTreasDlySwapStgData;

/*#######################################################################
##################################################
Name : getTreasDlyCommStgData
Description : Procedure to upload daily SEC
Enrichment for Details data to Vision staging table and from staging
table to the main target table
[TREASURY_FINANCIAL_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getTreasDlyCommStgData(P_Country IN VARCHAR2, P_Le_Book


IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN

/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getTreasDlyCommStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table


TREASURY_FINANCIAL_FEED_STG population......');

BEGIN

writeLogInfo('INSERT INTO TREASURY_FINANCIAL_FEED_STG (


COUNTRY, LE_BOOK,
CUSTOMER_ID, CONTRACT_ID,
OFFICE_ACCOUNT, VISION_GL,
VISION_OUC,COST_CENTER,
CURRENCY,MIS_CURRENCY,LB_ACCT_ID,
TRAN_TYPE, TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE, FEED_DATE,
PRODUCT,RUN_STATUS ,
DATE_LAST_MODIFIED, DATE_CREATION)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
gl.LEDGER VISION_GL,
NVL( GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
GL.CCYCDE CURRENCY,
GL.CCYCDE MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '') LB_ACCT_ID,
DECODE(AMOUNT*-1, ABS(AMOUNT*-1), ''C'',
''D'') TRAN_TYPE,
ABS(GL.AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-COMM'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,
LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,

AMOUNT,CCYCDE,ACCNUM,TRANTIME,DEALTYPE,ledger
FROM TRSRY_GL_TRANS
GL,D10113.TT_COM_LOAN@TREASURYPROD COM WHERE GL.DEALNUMBER = COM.DEAL_NUM
AND GL.ledger not in (SELECT
vision_gl FROM gl_translation WHERE SUBSTR (mapping_source_vision_gl,
1, 1) IN (''5'', ''6''))
) GL,
(select
CPTY_ID_NUM,lb_acct_id,LB_ACCT_CCY,LB_ACCT_BRANCH from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.LBS_ACCOUNT_BRANCH
=CPTY.LB_ACCT_BRANCH(+)
AND GL.CCYCDE = CPTY.LB_ACCT_CCY(+)
AND DEALTYPE IN (''CMLOAN'',''REPO'')
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
AND GL.DEAL_STATE=''STRT''
and trunc(GL.trantime)<=
'''||G_Current_Business_Date ||'''
UNION ALL
SELECT
DISTINCT
'||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
T1.CPTY_FBO_ID_NUM CUSTOMER_ID,
T1.DEAL_NUM CONTRACT_ID,
T3.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
t3.LEDGER VISION_GL,
NVL(T3.LBS_ACCOUNT_BRANCH ,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
CCYCDE MIS_CURRENCY,
NULL LB_ACCT_ID,
DECODE(LBS_AMOUNT*-1, ABS(LBS_AMOUNT*-1), ''C'',
''D'') TRAN_TYPE,
ABS(LBS_AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-COMM'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||'
PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
D10113.TT_COM_LOAN@TREASURYPROD T1,
(SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,
LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,
LBS_AMOUNT ,
CASE WHEN FORACID IS NULL
THEN ''MUR'' ELSE CCYCDE END CCYCDE ,LEDGER,
ACCNUM,TRANTIME,DEALTYPE
FROM TRSRY_GL_TRANS
GL,D10113.TT_COM_LOAN@TREASURYPROD COM,TEMP_GAM GAM
WHERE GL.DEALNUMBER = COM.DEAL_NUM
AND GL.ledger in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6''))
AND GL.LBS_ACCOUNT_ID =FORACID(+) ) T3
WHERE
T1.DEAL_NUM = T3.dealnumber
AND T1.DEAL_TYPE IN (''CMLOAN'',''REPO'')
and to_char(t3.trantime,''DD-MON-RRRR'')=
'''||G_Current_Business_Date ||'''
AND ACCNUM not like ''%INTEXPENSE-E''
and ACCNUM not like ''%INTINCOME-I''
UNION
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
T1.CPTY_FBO_ID_NUM CUSTOMER_ID,
T1.DEAL_NUM CONTRACT_ID,
T3.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
t3.LEDGER VISION_GL,
NVL( T3.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
CCYCDE MIS_CURRENCY,
NULL LB_ACCT_ID,
DECODE(LBS_AMOUNT*-1, ABS(LBS_AMOUNT*-1), ''C'',
''D'') TRAN_TYPE,
ABS(LBS_AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-COMM'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||'
PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
D10113.TT_COM_LOAN@TREASURYPROD T1,
(SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,LEDGER,
LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,
LBS_AMOUNT ,
CASE WHEN FORACID IS NULL
THEN ''MUR'' ELSE CCYCDE END CCYCDE ,
ACCNUM,TRANTIME,DEALTYPE
FROM TRSRY_GL_TRANS
GL,D10113.TT_COM_LOAN@TREASURYPROD COM,TEMP_GAM GAM
WHERE GL.DEALNUMBER = COM.DEAL_NUM
AND GL.ledger in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6''))
AND GL.LBS_ACCOUNT_ID =FORACID(+) ) T3
WHERE
T1.DEAL_NUM = T3.dealnumber
AND T1.DEAL_TYPE IN (''CMLOAN'',''REPO'')
and to_char(t3.trantime,''DD-MON-RRRR'')=
'''||G_Current_Business_Date ||'''
AND (ACCNUM like ''%INTINCOME-I''
OR ACCNUM like ''%INTEXPENSE-E'') ');

EXECUTE IMMEDIATE ('INSERT INTO


TREASURY_FINANCIAL_FEED_STG (
COUNTRY, LE_BOOK,
CUSTOMER_ID, CONTRACT_ID,
OFFICE_ACCOUNT, VISION_GL,
VISION_OUC,COST_CENTER,
CURRENCY,MIS_CURRENCY,LB_ACCT_ID,
TRAN_TYPE, TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE, FEED_DATE,
PRODUCT,RUN_STATUS ,
DATE_LAST_MODIFIED, DATE_CREATION)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
GL.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
gl.LEDGER VISION_GL,
NVL( GL.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
GL.CCYCDE CURRENCY,
GL.CCYCDE MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '') LB_ACCT_ID,
DECODE(AMOUNT*-1, ABS(AMOUNT*-1), ''C'',
''D'') TRAN_TYPE,
ABS(GL.AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-COMM'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,
LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,

AMOUNT,CCYCDE,ACCNUM,TRANTIME,DEALTYPE,ledger
FROM TRSRY_GL_TRANS
GL,D10113.TT_COM_LOAN@TREASURYPROD COM WHERE GL.DEALNUMBER = COM.DEAL_NUM
AND GL.ledger not in (SELECT
vision_gl FROM gl_translation WHERE SUBSTR (mapping_source_vision_gl,
1, 1) IN (''5'', ''6''))
) GL,
(select
CPTY_ID_NUM,lb_acct_id,LB_ACCT_CCY,LB_ACCT_BRANCH from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE GL.CPTY_FBO_ID_NUM = CPTY.CPTY_ID_NUM(+)
AND GL.LBS_ACCOUNT_BRANCH
=CPTY.LB_ACCT_BRANCH(+)
AND GL.CCYCDE = CPTY.LB_ACCT_CCY(+)
AND DEALTYPE IN (''CMLOAN'',''REPO'')
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
AND GL.DEAL_STATE=''STRT''
and trunc(GL.trantime)<=
'''||G_Current_Business_Date ||'''
UNION ALL
SELECT
DISTINCT
'||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
T1.CPTY_FBO_ID_NUM CUSTOMER_ID,
T1.DEAL_NUM CONTRACT_ID,
T3.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
t3.LEDGER VISION_GL,
NVL(T3.LBS_ACCOUNT_BRANCH ,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
CCYCDE MIS_CURRENCY,
NULL LB_ACCT_ID,
DECODE(LBS_AMOUNT*-1, ABS(LBS_AMOUNT*-1), ''C'',
''D'') TRAN_TYPE,
ABS(LBS_AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-COMM'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||'
PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
D10113.TT_COM_LOAN@TREASURYPROD T1,
(SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,
LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,
LBS_AMOUNT ,
CASE WHEN FORACID IS NULL
THEN ''MUR'' ELSE CCYCDE END CCYCDE ,LEDGER,
ACCNUM,TRANTIME,DEALTYPE
FROM TRSRY_GL_TRANS
GL,D10113.TT_COM_LOAN@TREASURYPROD COM,TEMP_GAM GAM
WHERE GL.DEALNUMBER = COM.DEAL_NUM
AND GL.ledger in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6''))
AND GL.LBS_ACCOUNT_ID =FORACID(+) ) T3
WHERE
T1.DEAL_NUM = T3.dealnumber
AND T1.DEAL_TYPE IN (''CMLOAN'',''REPO'')
and to_char(t3.trantime,''DD-MON-RRRR'')=
'''||G_Current_Business_Date ||'''
AND ACCNUM not like ''%INTEXPENSE-E''
and ACCNUM not like ''%INTINCOME-I''
UNION
SELECT DISTINCT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
T1.CPTY_FBO_ID_NUM CUSTOMER_ID,
T1.DEAL_NUM CONTRACT_ID,
T3.LBS_ACCOUNT_ID OFFICE_ACCOUNT,
t3.LEDGER VISION_GL,
NVL( T3.LBS_ACCOUNT_BRANCH,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
CCYCDE MIS_CURRENCY,
NULL LB_ACCT_ID,
DECODE(LBS_AMOUNT*-1, ABS(LBS_AMOUNT*-1), ''C'',
''D'') TRAN_TYPE,
ABS(LBS_AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date ||''''||'
TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-COMM'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||'
PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM
D10113.TT_COM_LOAN@TREASURYPROD T1,
(SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,LEDGER,
LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,
LBS_AMOUNT ,
CASE WHEN FORACID IS NULL
THEN ''MUR'' ELSE CCYCDE END CCYCDE ,
ACCNUM,TRANTIME,DEALTYPE
FROM TRSRY_GL_TRANS
GL,D10113.TT_COM_LOAN@TREASURYPROD COM,TEMP_GAM GAM
WHERE GL.DEALNUMBER = COM.DEAL_NUM
AND GL.ledger in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6''))
AND GL.LBS_ACCOUNT_ID =FORACID(+) ) T3
WHERE
T1.DEAL_NUM = T3.dealnumber
AND T1.DEAL_TYPE IN (''CMLOAN'',''REPO'')
and to_char(t3.trantime,''DD-MON-RRRR'')=
'''||G_Current_Business_Date ||'''
AND (ACCNUM like ''%INTINCOME-I''
OR ACCNUM like ''%INTEXPENSE-E'') ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GL_TRANS_ALL /
TT_COMM Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TREASURY_FINANCIAL_FEED_STG !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getTreasDlyCommStgData;

/*#######################################################################
##################################################
Name : getTreasDlyFXStgData
Description : Procedure to upload daily SEC
Enrichment for Details data to Vision staging table and from staging
table to the main target table
[TREASURY_FINANCIAL_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getTreasDlyFXStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */
IF (P_Schema_Name IS NOT NULL) THEN
BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getTreasDlyFXStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

BEGIN

writeLogInfo('Beginning Drop table TEMP_FX_TRANS


......');

EXECUTE IMMEDIATE ('DROP Table


'||V_Schema_Name||'TEMP_FX_TRANS PURGE ');
EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TEMP_FX_TRANS !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');

writeLogInfo('Beginning staging table TEMP_FX_TRANS Creation


......');

BEGIN
writeLogInfo('Create Table TEMP_FX_TRANS AS
SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,LEDGER,
LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,

AMOUNT,CCYCDE,ACCNUM,TRANTIME,DEALTYPE,DRCR
FROM TRSRY_GL_TRANS
GL,D10113.TT_FX@TREASURYPROD SEC
WHERE GL.DEALNUMBER = SEC.DEAL_NUM
and DEALTYPE
IN(''FXOUTL'',''FXOUTS'',''FXSPOT'',''FXSWAP'',''FXPHDG'')
AND DEAL_STATE
IN(''ACPT'',''CGNT'',''STRT'')
AND TRUNC(GL.trantime)<=
'''||G_Current_Business_Date ||''' ');

EXECUTE IMMEDIATE ('CREATE TABLE TEMP_FX_TRANS AS


SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,LEDGER,
LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,

AMOUNT,CCYCDE,ACCNUM,TRANTIME,DEALTYPE,DRCR
FROM TRSRY_GL_TRANS
GL,D10113.TT_FX@TREASURYPROD SEC
WHERE GL.DEALNUMBER = SEC.DEAL_NUM
and DEALTYPE
IN(''FXOUTL'',''FXOUTS'',''FXSPOT'',''FXSWAP'',''FXPHDG'')
AND DEAL_STATE
IN(''ACPT'',''CGNT'',''STRT'')
AND TRUNC(GL.trantime)<=
'''||G_Current_Business_Date ||''' ');
G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create TEMP_FX_TRANS !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');

writeLogInfo('Beginning Creation Index On TEMP_FX_TRANS


(LEDGER)......');

BEGIN
writeLogInfo('Create INDEX TEMP_FX_TRANS_IDX ON
TEMP_FX_TRANS (LEDGER)');

EXECUTE IMMEDIATE ('Create INDEX TEMP_FX_TRANS_IDX ON


TEMP_FX_TRANS (LEDGER)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create INDEX TEMP_FX_TRANS_IDX ON TEMP_FX_TRANS (LEDGER) !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;
writeLogInfo('Beginning staging table TEMP_FX_TRANS1 Creation
......');

BEGIN

writeLogInfo('Beginning Drop table TEMP_FX_TRANS1


......');

EXECUTE IMMEDIATE ('DROP Table


'||V_Schema_Name||'TEMP_FX_TRANS1 PURGE ');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TEMP_FX_TRANS1 !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN
writeLogInfo('Create Table TEMP_FX_TRANS1 AS
SELECT * FROM TEMP_FX_TRANS
WHERE ledger not in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6'')) ');

EXECUTE IMMEDIATE ('CREATE TABLE TEMP_FX_TRANS1 AS


SELECT * FROM TEMP_FX_TRANS
WHERE ledger not in (SELECT vision_gl FROM
gl_translation WHERE SUBSTR (mapping_source_vision_gl, 1, 1) IN (''5'',
''6'')) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create TEMP_FX_TRANS1 !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');

writeLogInfo('Beginning Creation Index On TEMP_FX_TRANS1


(DEALNUMBER)......');

BEGIN
writeLogInfo('Create INDEX TEMP_FX_TRANS1_IDX ON
TEMP_FX_TRANS1 (DEALNUMBER)');

EXECUTE IMMEDIATE ('Create INDEX TEMP_FX_TRANS1_IDX ON


TEMP_FX_TRANS1 (DEALNUMBER)');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create INDEX TEMP_FX_TRANS1_IDX ON TEMP_FX_TRANS1 (DEALNUMBER)
!!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Beginning staging table


TREASURY_FINANCIAL_FEED_STG population......');

BEGIN

writeLogInfo('INSERT INTO TREASURY_FINANCIAL_FEED_STG (


COUNTRY, LE_BOOK,
CUSTOMER_ID, CONTRACT_ID,
OFFICE_ACCOUNT, VISION_GL,
VISION_OUC,COST_CENTER,
CURRENCY,MIS_CURRENCY,LB_ACCT_ID,
TRAN_TYPE, TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE, FEED_DATE,
PRODUCT,RUN_STATUS ,
DATE_LAST_MODIFIED, DATE_CREATION)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
LBS_ACCOUNT_ID
OFFICE_ACCOUNT,
--SUBSTR(LBS_ACCOUNT_ID,4,5) VISION_GL,
gl.LEDGER VISION_GL,
NVL( GL.LBS_ACCOUNT_BRANCH ,''019'')
VISION_OUC,
''NA'' COST_CENTER,
CCYCDE CURRENCY,
CCYCDE MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '')
LB_ACCT_ID,
DECODE(AMOUNT*-1, ABS(AMOUNT*-1), ''C'',
''D'') TRAN_TYPE,
ABS(AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-FX'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT * FROM TEMP_FX_TRANS1 ) GL,
(select
CPTY_ID_NUM,lb_acct_id,LB_ACCT_CCY,LB_ACCT_BRANCH from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE DEALTYPE
IN(''FXOUTL'',''FXOUTS'',''FXSPOT'',''FXSWAP'',''FXPHDG'')
AND DEAL_STATE
IN(''ACPT'',''CGNT'',''STRT'')
AND GL.CPTY_FBO_ID_NUM =
CPTY.CPTY_ID_NUM(+)
AND GL.LBS_ACCOUNT_BRANCH
=CPTY.LB_ACCT_BRANCH(+)
AND GL.CCYCDE = CPTY.LB_ACCT_CCY(+)
AND LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
AND NOT EXISTS (SELECT ''X'' FROM
CGL_TRANSLATION
WHERE
SUBSTR(LBS_ACCOUNT_ID,4,5) = MAPPING_SOURCE_VISION_GL
AND COUNTRY
='''||P_Country||''' AND LE_BOOK ='''||P_Le_Book||''')
and trunc(GL.trantime)<= '''||G_Current_Business_Date
||'''
AND LBS_ACCOUNT_ID not in
(''900903000000104'',''900263100100105'')
Union All
SELECT
'||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
LBS_ACCOUNT_ID
OFFICE_ACCOUNT,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH ,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
GL.CCYCDE MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '')
LB_ACCT_ID,
DECODE(LBS_AMOUNT*-1, ABS(LBS_AMOUNT*-1),
''C'', ''D'') TRAN_TYPE,
ABS(LBS_AMOUNT)
TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-FX'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,LEDGER,

LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,
LBS_AMOUNT ,
CASE WHEN FORACID IS NULL
THEN ''MUR'' ELSE CCYCDE END CCYCDE ,ACCNUM,TRANTIME,DEALTYPE,DRCR
FROM TRSRY_GL_TRANS
GL,D10113.TT_FX@TREASURYPROD SEC,TEMP_GAM GAM
WHERE GL.DEALNUMBER = SEC.DEAL_NUM
AND GL.ledger in (SELECT
vision_gl FROM gl_translation WHERE SUBSTR (mapping_source_vision_gl,
1, 1) IN (''5'', ''6''))
AND GL.LBS_ACCOUNT_ID
=FORACID(+) ) GL,
(select
CPTY_ID_NUM,lb_acct_id,LB_ACCT_CCY,LB_ACCT_BRANCH from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE DEALTYPE
IN(''FXOUTL'',''FXOUTS'',''FXSPOT'',''FXSWAP'',''FXPHDG'')
AND GL.CPTY_FBO_ID_NUM =
CPTY.CPTY_ID_NUM(+)
AND GL.LBS_ACCOUNT_BRANCH
=CPTY.LB_ACCT_BRANCH(+)
AND GL.CCYCDE = CPTY.LB_ACCT_CCY(+)
AND LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
and to_char(GL.trantime,''DD-MON-RRRR'')=
'''||G_Current_Business_Date ||''' ');

EXECUTE IMMEDIATE ('INSERT INTO


TREASURY_FINANCIAL_FEED_STG (
COUNTRY, LE_BOOK,
CUSTOMER_ID, CONTRACT_ID,
OFFICE_ACCOUNT, VISION_GL,
VISION_OUC,COST_CENTER,
CURRENCY,MIS_CURRENCY,LB_ACCT_ID,
TRAN_TYPE, TRAN_AMT,
TRAN_DATE,VALUE_DATE,
SCHM_TYPE, FEED_DATE,
PRODUCT,RUN_STATUS ,
DATE_LAST_MODIFIED, DATE_CREATION)
SELECT '||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
LBS_ACCOUNT_ID
OFFICE_ACCOUNT,
--SUBSTR(LBS_ACCOUNT_ID,4,5) VISION_GL,
gl.LEDGER VISION_GL,
NVL( GL.LBS_ACCOUNT_BRANCH ,''019'')
VISION_OUC,
''NA'' COST_CENTER,
CCYCDE CURRENCY,
CCYCDE MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '')
LB_ACCT_ID,
DECODE(AMOUNT*-1, ABS(AMOUNT*-1), ''C'',
''D'') TRAN_TYPE,
ABS(AMOUNT) TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-FX'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT * FROM TEMP_FX_TRANS1 ) GL,
(select
CPTY_ID_NUM,lb_acct_id,LB_ACCT_CCY,LB_ACCT_BRANCH from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE DEALTYPE
IN(''FXOUTL'',''FXOUTS'',''FXSPOT'',''FXSWAP'',''FXPHDG'')
AND DEAL_STATE
IN(''ACPT'',''CGNT'',''STRT'')
AND GL.CPTY_FBO_ID_NUM =
CPTY.CPTY_ID_NUM(+)
AND GL.LBS_ACCOUNT_BRANCH
=CPTY.LB_ACCT_BRANCH(+)
AND GL.CCYCDE = CPTY.LB_ACCT_CCY(+)
AND LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
AND NOT EXISTS (SELECT ''X'' FROM
CGL_TRANSLATION
WHERE
SUBSTR(LBS_ACCOUNT_ID,4,5) = MAPPING_SOURCE_VISION_GL
AND COUNTRY
='''||P_Country||''' AND LE_BOOK ='''||P_Le_Book||''')
and trunc(GL.trantime)<= '''||G_Current_Business_Date
||'''
AND LBS_ACCOUNT_ID not in
(''900903000000104'',''900263100100105'')
Union All
SELECT
'||
''''||P_Country||'''' ||' COUNTRY, '||
''''||P_Le_Book||'''' ||' LE_BOOK,
CPTY_FBO_ID_NUM CUSTOMER_ID,
GL.DEALNUMBER CONTRACT_ID,
LBS_ACCOUNT_ID
OFFICE_ACCOUNT,
gl.LEDGER VISION_GL,
NVL(GL.LBS_ACCOUNT_BRANCH ,''019'')
VISION_OUC,
''NA'' COST_CENTER,
''MUR'' CURRENCY,
GL.CCYCDE MIS_CURRENCY,
NVL(LB_ACCT_ID,'' '')
LB_ACCT_ID,
DECODE(LBS_AMOUNT*-1, ABS(LBS_AMOUNT*-1),
''C'', ''D'') TRAN_TYPE,
ABS(LBS_AMOUNT)
TRAN_AMT,
'||''''||G_Current_Business_Date
||''''||' TRAN_DATE,
'||''''||G_Current_Business_Date
||''''||' VALUE_DATE,
''FT-FX'' SCHM_TYPE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION
FROM (SELECT DEALNUMBER,DEAL_NUM
,DEAL_STATE,LBS_ACCOUNT_ID,LEDGER,

LBS_ACCOUNT_BRANCH,CPTY_FBO_ID_NUM,
LBS_AMOUNT ,
CASE WHEN FORACID IS NULL
THEN ''MUR'' ELSE CCYCDE END CCYCDE ,ACCNUM,TRANTIME,DEALTYPE,DRCR
FROM TRSRY_GL_TRANS
GL,D10113.TT_FX@TREASURYPROD SEC,TEMP_GAM GAM
WHERE GL.DEALNUMBER = SEC.DEAL_NUM
AND GL.ledger in (SELECT
vision_gl FROM gl_translation WHERE SUBSTR (mapping_source_vision_gl,
1, 1) IN (''5'', ''6''))
AND GL.LBS_ACCOUNT_ID
=FORACID(+) ) GL,
(select
CPTY_ID_NUM,lb_acct_id,LB_ACCT_CCY,LB_ACCT_BRANCH from
D10113.SD_CPTY_LB_ACCT@TREASURYPROD where NVL(IS_DEFAULT,''Y'') =''Y'')
CPTY
WHERE DEALTYPE
IN(''FXOUTL'',''FXOUTS'',''FXSPOT'',''FXSWAP'',''FXPHDG'')
AND GL.CPTY_FBO_ID_NUM =
CPTY.CPTY_ID_NUM(+)
AND GL.LBS_ACCOUNT_BRANCH
=CPTY.LB_ACCT_BRANCH(+)
AND GL.CCYCDE = CPTY.LB_ACCT_CCY(+)
AND LBS_ACCOUNT_ID IS NOT NULL
AND GL.LBS_ACCOUNT_BRANCH IS NOT NULL
AND GL.LBS_ACCOUNT_ID != ''NONE''
and to_char(GL.trantime,''DD-MON-RRRR'')=
'''||G_Current_Business_Date ||''' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');
EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GL_TRANS_ALL /
TT_FX Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate TREASURY_FINANCIAL_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getTreasDlyFXStgData;

/*#######################################################################
##################################################
Name : getAtmTransStgData
Description : Procedure to upload daily ATM
Transaction Details data to Vision staging table and from staging
table to the main target table
[ATM_TRANS_DETAILS].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x
#########################################################################
################################################*/

FUNCTION getAtmTransStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getAtmTransStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;
writeLogInfo('Time of current execution obtained from Oracle
is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table CRM_FLAGS_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO ATM_TRANS_DETAILS (


COUNTRY,LE_BOOK,
BUSINESS_DATE,CARD_NO,
ATM_ID,CUSTOMER_TYPE,
CARD_TYPE,ACQUIRER,
ISSUER,RESPONSE_CODE,
SOURCE,DESTINATION,
PROCESSING_CODE,TRAN_DATE,
TRAN_AMT,BILL_CCY,TXNAMT,TXN_CCY,
DEVICE_TYPE,
GRP_ID,SRC_AGENT_TYPE,
DEST_AGENT_TYPE,REVERSAL_FLAG,
PROCCODE,MSGTYPE,

OFFUSFLG,SETTLE_FLAG,SOURCEID,MEFIELD,PROCESS_FLG,CHARGE_TYPE,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT COUNTRY,LE_BOOK,
trunc(BUSINESS_DATE)
BUSINESS_DATE,CARD_NO,
ATM_ID,CUSTOMER_TYPE,
CARD_TYPE,ACQUIRER,
ISSUER,RESPONSE_CODE,
SOURCE,DESTINATION,
PROCESSING_CODE,TRAN_DATE,
TRAN_AMT,BILL_CCY,TXNAMT,TXN_CCY,
DEVICE_TYPE,
GRP_ID,SRC_AGENT_TYPE,
DEST_AGENT_TYPE,REVERSAL_FLAG,
PROCCODE,MSGTYPE,

OFFUSFLG,SETTLE_FLAG,SOURCEID,MEFIELD,PROCESS_FLG,CHARGE_TYPE,
DATE_LAST_MODIFIED,DATE_CREATION
FROM
(SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
TXNREQDTTIME Business_date,
T1.CARD_NO,
TERMID ATM_ID,
CASE WHEN T2.CARD_NO IS NOT NULL THEN
''I'' ELSE ''E'' END CUSTOMER_TYPE,
NVL(T2.Card_Type,''O'') Card_Type,
ACQ_ID ACQUIRER,
SUBSTR(T1.CARD_NO,1,6) AS ISSUER,
NVL(RESPONSE_CODE,''NA'') RESPONSE_CODE,

DECODE(SRC_AGENT_TYPE,''VIS'',''VISA'',''KEN'',''KENSWITCH'',''NDC'',''I'
'||''&''||''M ATM'',''MDS'',''MASTER
CARD'',''IVE'',''IVERI'',''HST'',''FINACLE'',''SIP'',''CREDIT CARD
SWITCH'',''VSI'',''VISA ACQ'') AS SOURCE,

DECODE(DEST_AGENT_TYPE,''VIS'',''VISA'',''KEN'',''KENSWITCH'',''NDC'',''I
''||''&''||''M ATM'',''MDS'',''MASTER
CARD'',''IVE'',''IVERI'',''HST'',''FINACLE'',''SIP'',''CREDIT CARD
SWITCH'',''VSI'',''VISA ACQ'','''',NULL)AS DESTINATION,

DECODE(SUBSTR(PROCCODE,1,2),''00'',''PURCHASE'','||''''||P_Le_Book||''''
||',''CASHWITHDRAWAL'',''10'',''PIN
VERIFICATION'',''32'',''OAR'',''31'',''BALANCE INQUIRY'',''30'',''BALANCE
INQUIRY'',''38'',''MINI STATEMENT'',''94'',''PIN CHANGE'',''22'',''CHEQUE
DEPOSIT'',''70'',''UTILITY PAYMENT'',''58'',''CREDIT
PAYMENT'',''81'',''FIXED DEPOSIT'',''91'',''ADDRESS CHANGE'',''77'',''E-
TOKEN'',''42'',''MOBILE TOPUP'',''41'',''MOBILE
PAYMENT'',''44'',''PRODUCT REQUEST'',''60'',''INTEREST'',''94'',''PIN
CHANGE'',''35'',''STATMENT REQUEST'',''21'',''CASH DEPOSIT'')
PROCESSING_CODE,
TXNREQDTTIME as TRAN_DATE,
BILL_AMT TRAN_AMT,
T4.CURRENCYCODE BILL_CCY,
TXNAMT,
T3.CURRENCYCODE TXN_CCY,
DEVICE_TYPE ,
GRP_ID,
SRC_AGENT_TYPE,
DEST_AGENT_TYPE,
REVERSAL_FLAG,
PROCCODE,
MSGTYPE,
OFFUSFLG,

SETTLE_FLAG,SOURCEID,MEFIELD,PROCESS_FLG,CHARGE_TYPE,
sysdate DATE_LAST_MODIFIED,
sysdate DATE_CREATION
FROM
AUTHCTL' || V_DB_Link || ' T1 ,
CARD_MASTER' || V_DB_Link || ' T2,
CURRENCY_CODES' || V_DB_Link || ' T3,
CURRENCY_CODES' || V_DB_Link || ' T4
WHERE T1.CARD_NO = T2.CARD_NO(+)
AND T1.TXN_CCY = T3.SWIFTCODE(+)
AND T1.BILL_CCY = T4.SWIFTCODE(+)
AND TXNREQDTTIME > ' || '''' ||
G_LastBusinessDateRun || ''')
WHERE trunc(BUSINESS_DATE) > ' || '''' ||
G_LastBusinessDateRun || '''
AND trunc(BUSINESS_DATE) <= ' || '''' ||
G_Current_Business_Date || '''');
EXECUTE IMMEDIATE ('INSERT INTO ATM_TRANS_DETAILS (
COUNTRY,LE_BOOK,
BUSINESS_DATE,CARD_NO,
ATM_ID,CUSTOMER_TYPE,
CARD_TYPE,ACQUIRER,
ISSUER,RESPONSE_CODE,
SOURCE,DESTINATION,
PROCESSING_CODE,TRAN_DATE,
TRAN_AMT,BILL_CCY,TXNAMT,TXN_CCY,
DEVICE_TYPE,
GRP_ID,SRC_AGENT_TYPE,
DEST_AGENT_TYPE,REVERSAL_FLAG,
PROCCODE,MSGTYPE,

OFFUSFLG,SETTLE_FLAG,SOURCEID,MEFIELD,PROCESS_FLG,CHARGE_TYPE,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT COUNTRY,LE_BOOK,
trunc(BUSINESS_DATE)
BUSINESS_DATE,CARD_NO,
ATM_ID,CUSTOMER_TYPE,
CARD_TYPE,ACQUIRER,
ISSUER,RESPONSE_CODE,
SOURCE,DESTINATION,
PROCESSING_CODE,TRAN_DATE,
TRAN_AMT,BILL_CCY,TXNAMT,TXN_CCY,
DEVICE_TYPE,
GRP_ID,SRC_AGENT_TYPE,
DEST_AGENT_TYPE,REVERSAL_FLAG,
PROCCODE,MSGTYPE,

OFFUSFLG,SETTLE_FLAG,SOURCEID,MEFIELD,PROCESS_FLG,CHARGE_TYPE,
DATE_LAST_MODIFIED,DATE_CREATION
FROM
(SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
TXNREQDTTIME Business_date,
T1.CARD_NO,
TERMID ATM_ID,
CASE WHEN T2.CARD_NO IS NOT NULL THEN
''I'' ELSE ''E'' END CUSTOMER_TYPE,
NVL(T2.Card_Type,''O'') Card_Type,
ACQ_ID ACQUIRER,
SUBSTR(T1.CARD_NO,1,6) AS ISSUER,
NVL(RESPONSE_CODE,''NA'') RESPONSE_CODE,

DECODE(SRC_AGENT_TYPE,''VIS'',''VISA'',''KEN'',''KENSWITCH'',''NDC'',''I'
'||''&''||''M ATM'',''MDS'',''MASTER
CARD'',''IVE'',''IVERI'',''HST'',''FINACLE'',''SIP'',''CREDIT CARD
SWITCH'',''VSI'',''VISA ACQ'') AS SOURCE,

DECODE(DEST_AGENT_TYPE,''VIS'',''VISA'',''KEN'',''KENSWITCH'',''NDC'',''I
''||''&''||''M ATM'',''MDS'',''MASTER
CARD'',''IVE'',''IVERI'',''HST'',''FINACLE'',''SIP'',''CREDIT CARD
SWITCH'',''VSI'',''VISA ACQ'','''',NULL)AS DESTINATION,

DECODE(SUBSTR(PROCCODE,1,2),''00'',''PURCHASE'','||''''||P_Le_Book||''''
||',''CASHWITHDRAWAL'',''10'',''PIN
VERIFICATION'',''32'',''OAR'',''31'',''BALANCE INQUIRY'',''30'',''BALANCE
INQUIRY'',''38'',''MINI STATEMENT'',''94'',''PIN CHANGE'',''22'',''CHEQUE
DEPOSIT'',''70'',''UTILITY PAYMENT'',''58'',''CREDIT
PAYMENT'',''81'',''FIXED DEPOSIT'',''91'',''ADDRESS CHANGE'',''77'',''E-
TOKEN'',''42'',''MOBILE TOPUP'',''41'',''MOBILE
PAYMENT'',''44'',''PRODUCT REQUEST'',''60'',''INTEREST'',''94'',''PIN
CHANGE'',''35'',''STATMENT REQUEST'',''21'',''CASH DEPOSIT'')
PROCESSING_CODE,
TXNREQDTTIME as TRAN_DATE,
BILL_AMT TRAN_AMT,
T4.CURRENCYCODE BILL_CCY,
TXNAMT,
T3.CURRENCYCODE TXN_CCY,
DEVICE_TYPE ,
GRP_ID,
SRC_AGENT_TYPE,
DEST_AGENT_TYPE,
REVERSAL_FLAG,
PROCCODE,
MSGTYPE,
OFFUSFLG,

SETTLE_FLAG,SOURCEID,MEFIELD,PROCESS_FLG,CHARGE_TYPE,
sysdate DATE_LAST_MODIFIED,
sysdate DATE_CREATION
FROM
AUTHCTL' || V_DB_Link || ' T1 ,
CARD_MASTER' || V_DB_Link || ' T2,
CURRENCY_CODES' || V_DB_Link || ' T3,
CURRENCY_CODES' || V_DB_Link || ' T4
WHERE T1.CARD_NO = T2.CARD_NO(+)
AND T1.TXN_CCY = T3.SWIFTCODE(+)
AND T1.BILL_CCY = T4.SWIFTCODE(+)
AND TXNREQDTTIME > ' || '''' ||
G_LastBusinessDateRun || ''')
WHERE trunc(BUSINESS_DATE) > ' || '''' ||
G_LastBusinessDateRun || '''
AND trunc(BUSINESS_DATE) <= ' || '''' ||
G_Current_Business_Date || '''');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables GET/UPR Does not
exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CRM_FLAGS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getAtmTransStgData;

/*#######################################################################
##################################################
Name : getcardsCustStgData
Description : Procedure to upload daily Cards
Customer Details data to Vision staging table and from staging
table to the main target table
[CUSTOMERS_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/
FUNCTION getcardsCustStgData(P_Country IN VARCHAR2, P_Le_Book IN
VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getcardsCustStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;
writeLogInfo('Beginning staging table Cards
CUSTOMERS_FEED_STG population......');

BEGIN

writeLogInfo('INSERT INTO CUSTOMERS_FEED_STG


(COUNTRY,LE_BOOK,
CUSTOMER_ID,CUSTOMER_NAME,
CUSTOMER_ACRONYM,VISION_OUC,
VISION_SBU,CB_ECONOMIC_ACT_CODE,
CUSTOMER_NRE_FLAG,CUST_COMU_CNTRY_CODE,
CUST_PERM_CNTRY_CODE,CB_MAJOR_PARTY_INDICATOR,
PSPRT_DETAILS,PRIMARY_CID,
PARENT_CID,ULTIMATE_PARENT,
ACCOUNT_OFFICER,CUSTOMER_SEX,
NUM_OF_ACCOUNTS,CUSTOMER_OPEN_DATE,
COMM_ADDRESS_1,COMM_ADDRESS_2,
COMM_CITY, COMM_STATE,
COMM_PIN_CODE,PHONE_NUMBER,
FEED_DATE,PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
Cin Customer_id,
desired_name Customer_name,
substr(desired_name,1,20)
Customer_Acronym,
''84'' VISION_OUC,
''NA'' VISION_SBU,
''NA'' CB_Economic_Act_Code,
''N'' CUSTOMER_NRE_FLAG,
substr(T3.COUNTRY,1,2) CUST_COMU_CNTRY_CODE,
substr(T2.COUNTRY,1,2) CUST_PERM_CNTRY_CODE,
''N'' CB_Major_Party_Indicator,
citizenno PSPRT_DETAILS,
cin Primary_CID,
cin Parent_CID,
cin Ultimate_Parent,
''NA'' Account_Officer,
SEX Customer_Sex,
1 Num_of_Accounts,
Auth_date Customer_Open_Date,
substr(T3.ADD1,1,45) COMM_ADDRESS_1,
substr(T3.ADD2,1,45) COMM_ADDRESS_2,
substr(T3.CITY,1,10) COMM_CITY,
T3.STATE COMM_STATE,
T3.PIN COMM_PIN_CODE,
T3.MOBILE PHONE_NUMBER,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
sysdate Date_last_modified,
sysdate Date_Creation
FROM
CUSTOMER_MASTER' || V_DB_Link || ' T1,
MAIL_MASTER' || V_DB_Link || ' T2,
MAIL_MASTER' || V_DB_Link || ' T3
where P_MAILID =T2.MAIL_ID(+)
And M_MAILID =T3.MAIL_ID(+)
ANd T1.CARD_TYPE =''C''
and
NVL(AUTH_DATE,'||''''||G_Current_Business_Date ||''''||') > ' || '''' ||
G_LastBusinessDateRun || '''');

EXECUTE IMMEDIATE ('INSERT INTO CUSTOMERS_FEED_STG


(COUNTRY,LE_BOOK,
CUSTOMER_ID,CUSTOMER_NAME,
CUSTOMER_ACRONYM,VISION_OUC,
VISION_SBU,CB_ECONOMIC_ACT_CODE,
CUSTOMER_NRE_FLAG,CUST_COMU_CNTRY_CODE,
CUST_PERM_CNTRY_CODE,CB_MAJOR_PARTY_INDICATOR,
PSPRT_DETAILS,PRIMARY_CID,
PARENT_CID,ULTIMATE_PARENT,
ACCOUNT_OFFICER,CUSTOMER_SEX,
NUM_OF_ACCOUNTS,CUSTOMER_OPEN_DATE,
COMM_ADDRESS_1,COMM_ADDRESS_2,
COMM_CITY, COMM_STATE,
COMM_PIN_CODE,PHONE_NUMBER,
FEED_DATE,PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
Cin Customer_id,
desired_name Customer_name,
substr(desired_name,1,20)
Customer_Acronym,
''84'' VISION_OUC,
''NA'' VISION_SBU,
''NA'' CB_Economic_Act_Code,
''N'' CUSTOMER_NRE_FLAG,
substr(T3.COUNTRY,1,2) CUST_COMU_CNTRY_CODE,
substr(T2.COUNTRY,1,2) CUST_PERM_CNTRY_CODE,
''N'' CB_Major_Party_Indicator,
citizenno PSPRT_DETAILS,
cin Primary_CID,
cin Parent_CID,
cin Ultimate_Parent,
''NA'' Account_Officer,
SEX Customer_Sex,
1 Num_of_Accounts,
Auth_date Customer_Open_Date,
substr(T3.ADD1,1,45) COMM_ADDRESS_1,
substr(T3.ADD2,1,45) COMM_ADDRESS_2,
substr(T3.CITY,1,10) COMM_CITY,
T3.STATE COMM_STATE,
T3.PIN COMM_PIN_CODE,
T3.MOBILE PHONE_NUMBER,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
sysdate Date_last_modified,
sysdate Date_Creation
FROM
CUSTOMER_MASTER' || V_DB_Link || ' T1,
MAIL_MASTER' || V_DB_Link || ' T2,
MAIL_MASTER' || V_DB_Link || ' T3
where P_MAILID =T2.MAIL_ID(+)
And M_MAILID =T3.MAIL_ID(+)
ANd T1.CARD_TYPE =''C''
and
NVL(AUTH_DATE,'||''''||G_Current_Business_Date ||''''||') > ' || '''' ||
G_LastBusinessDateRun || '''');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables
CUSTOMER_MASTER/MAIL_MASTER Does not exists/not accessiable !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CUSTOMERS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getcardsCustStgData;
/*#######################################################################
##################################################
Name : getcardsCustExtrasStgData
Description : Procedure to upload daily Cards
Customer Extras Details data to Vision staging table and from staging
table to the main target table
[CUSTOMERS_EXTRAS_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getcardsCustExtrasStgData(P_Country IN VARCHAR2,


P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getcardsCustExtrasStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table Cards


CUSTOMERS_EXTRAS_FEED_STG population......');

BEGIN

writeLogInfo('INSERT INTO CUSTOMERS_EXTRAS_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,PERM_ADDRESS_1,
PERM_ADDRESS_2,PERM_CITY_CODE,
PERM_STATE_CODE,PERM_COUNTRY_CODE,
PERM_PIN_CODE,COMM_ADDRESS_1,
COMM_ADDRESS_2,COMM_CITY_CODE,
COMM_STATE_CODE,COMM_COUNTRY_CODE,
COMM_PIN_CODE,WORK_ADDRESS_1,
WORK_ADDRESS_2,WORK_CITY_CODE,
WORK_STATE_CODE,WORK_COUNTRY_CODE,
WORK_PIN_CODE,HOME_PHONE_1,
BUSINESS_PHONE_1,PERSONAL_EMAIL_ID,
DATE_OF_BIRTH,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
Cin Customer_id,
SUBSTR(T2.ADD1,1,45) PERM_ADDRESS_1,
SUBSTR(T2.ADD1,1,45) PERM_ADDRESS_2,
SUBSTR(T2.CITY,1,6) PERM_CITY_CODE,
T2.STATE PERM_STATE_CODE,
SUBSTR(T2.COUNTRY,1,2) PERM_COUNTRY_CODE,
T2.PIN PERM_PIN_CODE,
SUBSTR(T3.ADD1,1,45) COMM_ADDRESS_1,
SUBSTR(T3.ADD1,1,45) COMM_ADDRESS_2,
SUBSTR(T3.CITY,1,6) COMM_CITY_CODE,
T3.STATE COMM_STATE_CODE,
SUBSTR(T3.COUNTRY,1,2)
COMM_COUNTRY_CODE,
T3.PIN COMM_PIN_CODE,
SUBSTR(T4.ADD1,1,45) WORK_ADDRESS_1,
SUBSTR(T4.ADD2,1,45) WORK_ADDRESS_2,
SUBSTR(T4.CITY,1,6) WORK_CITY_CODE,
T4.STATE WORK_STATE_CODE,
SUBSTR(T4.COUNTRY,1,2)
WORK_COUNTRY_CODE,
SUBSTR(T4.PIN,1,6) WORK_PIN_CODE,
T3.PH1 HOME_PHONE_1,
T4.MOBILE BUSINESS_PHONE_1,
T2.EMAIL PERSONAL_EMAIL_ID,
DOB DATE_OF_BIRTH,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
sysdate Date_last_modified,
sysdate Date_Creation
from CUSTOMER_MASTER' || V_DB_Link || ' T1,
MAIL_MASTER' || V_DB_Link || ' T2,
MAIL_MASTER' || V_DB_Link || ' T3,
MAIL_MASTER' || V_DB_Link || ' T4
where P_MAILID =T2.MAIL_ID(+)
And M_MAILID =T3.MAIL_ID(+)
And C_MAILID =T4.MAIL_ID(+)
ANd T1.CARD_TYPE =''C''
and AUTH_DATE > ' || '''' ||
G_LastBusinessDateRun || '''');

EXECUTE IMMEDIATE ('INSERT INTO CUSTOMERS_EXTRAS_FEED_STG


(
COUNTRY,LE_BOOK,
CUSTOMER_ID,PERM_ADDRESS_1,
PERM_ADDRESS_2,PERM_CITY_CODE,
PERM_STATE_CODE,PERM_COUNTRY_CODE,
PERM_PIN_CODE,COMM_ADDRESS_1,
COMM_ADDRESS_2,COMM_CITY_CODE,
COMM_STATE_CODE,COMM_COUNTRY_CODE,
COMM_PIN_CODE,WORK_ADDRESS_1,
WORK_ADDRESS_2,WORK_CITY_CODE,
WORK_STATE_CODE,WORK_COUNTRY_CODE,
WORK_PIN_CODE,HOME_PHONE_1,
BUSINESS_PHONE_1,PERSONAL_EMAIL_ID,
DATE_OF_BIRTH,FEED_DATE,
PRODUCT,RUN_STATUS,
DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
Cin Customer_id,
SUBSTR(T2.ADD1,1,45) PERM_ADDRESS_1,
SUBSTR(T2.ADD1,1,45) PERM_ADDRESS_2,
SUBSTR(T2.CITY,1,6) PERM_CITY_CODE,
T2.STATE PERM_STATE_CODE,
SUBSTR(T2.COUNTRY,1,2) PERM_COUNTRY_CODE,
T2.PIN PERM_PIN_CODE,
SUBSTR(T3.ADD1,1,45) COMM_ADDRESS_1,
SUBSTR(T3.ADD1,1,45) COMM_ADDRESS_2,
SUBSTR(T3.CITY,1,6) COMM_CITY_CODE,
T3.STATE COMM_STATE_CODE,
SUBSTR(T3.COUNTRY,1,2)
COMM_COUNTRY_CODE,
T3.PIN COMM_PIN_CODE,
SUBSTR(T4.ADD1,1,45) WORK_ADDRESS_1,
SUBSTR(T4.ADD2,1,45) WORK_ADDRESS_2,
SUBSTR(T4.CITY,1,6) WORK_CITY_CODE,
T4.STATE WORK_STATE_CODE,
SUBSTR(T4.COUNTRY,1,2)
WORK_COUNTRY_CODE,
SUBSTR(T4.PIN,1,6) WORK_PIN_CODE,
T3.PH1 HOME_PHONE_1,
T4.MOBILE BUSINESS_PHONE_1,
T2.EMAIL PERSONAL_EMAIL_ID,
DOB DATE_OF_BIRTH,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
sysdate Date_last_modified,
sysdate Date_Creation
from CUSTOMER_MASTER' || V_DB_Link || ' T1,
MAIL_MASTER' || V_DB_Link || ' T2,
MAIL_MASTER' || V_DB_Link || ' T3,
MAIL_MASTER' || V_DB_Link || ' T4
where P_MAILID =T2.MAIL_ID(+)
And M_MAILID =T3.MAIL_ID(+)
And C_MAILID =T4.MAIL_ID(+)
ANd T1.CARD_TYPE =''C''
and AUTH_DATE > ' || '''' ||
G_LastBusinessDateRun || '''');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;
writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables CUSTOMER_MASTER /
MAIL_MASTER Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CUSTOMERS_EXTRAS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getcardsCustExtrasStgData;

/*#######################################################################
##################################################
Name : getcardsAcctStgData
Description : Procedure to upload daily Cards
Accounts Details data to Vision staging table and from staging
table to the main target table
[ACCOUNTS_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getcardsAcctStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getcardsAcctStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table Cards ACCOUNTS_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO ACCOUNTS_FEED_STG (


COUNTRY,LE_BOOK,
ACCOUNT_NO,CUSTOMER_ID,
ACCOUNT_NAME,CURRENCY,
VISION_OUC,VISION_SBU,
ACCOUNT_OFFICER,VISION_GL,
ACCOUNT_TYPE,ACCOUNT_OPEN_DATE,
SMT_ACCT_STATUS,CLS_ACCT_STATUS ,
SMT_ACCT_STATUS_DATE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T1.CARD_NO ACCOUNT_NO,
NVL(CUSTOMER_ID,T1.CIN) CUSTOMER_ID,
NVL(ACCOUNT_NAME,DESIRED_NAME)
ACCOUNT_NAME,
''MUR'' CURRENCY,
''84'' VISION_OUC,
NVL(VISION_SBU,''NA'') VISION_SBU,
NVL(ACCOUNT_OFFICER,''NA'')
ACCOUNT_OFFICER,
''08100'' VISION_GL,
''CRD'' ACCOUNT_TYPE,
ISSUE_DATE ACCOUNT_OPEN_DATE,
CASE WHEN NVL(CARD_STATUS,''I'') =''I''
THEN ''A'' ELSE ''C'' END SMT_ACCT_STATUS,
CASE WHEN CLOSE_DATE IS NOT NULL THEN
''Y'' ELSE NULL END CLS_ACCT_STATUS ,
NVL(ISSUE_DATE,V_FROM_DT)
SMT_ACCT_STATUS_DATE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
sysdate Date_last_modified,
sysdate Date_Creation
FROM CARD_MASTER' || V_DB_Link || '
T1,CUSTOMER_MASTER' || V_DB_Link || ' T2,
(SELECT DISTINCT
CARD_NO,SUBSTR(T3.ACC_NO,4,7) CUSTOMER_ID,ACCOUNT_NAME,T4.VISION_SBU
,ACCOUNT_OFFICER,VISION_OUC
FROM SI_TB' || V_DB_Link || '
T3,ACCOUNTS_DLY T4
WHERE T3.ACC_NO = T4.ACCOUNT_NO
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||'
And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||')
T3
where T1.Cin =T2.Cin
And T1.CARD_NO =T3.CARD_NO(+)
ANd T1.CARD_TYPE =''C''
and
NVL(ISSUE_DATE,'||''''||G_Current_Business_Date ||''''||') > ' || '''' ||
G_LastBusinessDateRun || '''');

EXECUTE IMMEDIATE ('INSERT INTO ACCOUNTS_FEED_STG (


COUNTRY,LE_BOOK,
ACCOUNT_NO,CUSTOMER_ID,
ACCOUNT_NAME,CURRENCY,
VISION_OUC,VISION_SBU,
ACCOUNT_OFFICER,VISION_GL,
ACCOUNT_TYPE,ACCOUNT_OPEN_DATE,
SMT_ACCT_STATUS,CLS_ACCT_STATUS ,
SMT_ACCT_STATUS_DATE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||
''''||P_COUNTRY||'''' ||' COUNTRY, '||
''''||P_LE_BOOK||'''' ||' LE_BOOK,
T1.CARD_NO ACCOUNT_NO,
NVL(CUSTOMER_ID,T1.CIN) CUSTOMER_ID,
NVL(ACCOUNT_NAME,DESIRED_NAME)
ACCOUNT_NAME,
''MUR'' CURRENCY,
''84'' VISION_OUC,
NVL(VISION_SBU,''NA'') VISION_SBU,
NVL(ACCOUNT_OFFICER,''NA'')
ACCOUNT_OFFICER,
''08100'' VISION_GL,
''CRD'' ACCOUNT_TYPE,
ISSUE_DATE ACCOUNT_OPEN_DATE,
CASE WHEN NVL(CARD_STATUS,''I'') =''I''
THEN ''A'' ELSE ''C'' END SMT_ACCT_STATUS,
CASE WHEN CLOSE_DATE IS NOT NULL THEN
''Y'' ELSE NULL END CLS_ACCT_STATUS ,
NVL(ISSUE_DATE,V_FROM_DT)
SMT_ACCT_STATUS_DATE,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
sysdate Date_last_modified,
sysdate Date_Creation
FROM CARD_MASTER' || V_DB_Link || '
T1,CUSTOMER_MASTER' || V_DB_Link || ' T2,
(SELECT DISTINCT
CARD_NO,SUBSTR(T3.ACC_NO,4,7) CUSTOMER_ID,ACCOUNT_NAME,T4.VISION_SBU
,ACCOUNT_OFFICER,VISION_OUC
FROM SI_TB' || V_DB_Link || '
T3,ACCOUNTS_DLY T4
WHERE T3.ACC_NO = T4.ACCOUNT_NO
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||'
And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||')
T3
where T1.Cin =T2.Cin
And T1.CARD_NO =T3.CARD_NO(+)
ANd T1.CARD_TYPE =''C''
and
NVL(ISSUE_DATE,'||''''||G_Current_Business_Date ||''''||') > ' || '''' ||
G_LastBusinessDateRun || '''');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables CARD_MASTER /
CUSTOMER_MASTER Does not exists/not accessiable !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate ACCOUNTS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getcardsAcctStgData;
/*#######################################################################
##################################################
Name : getcardsContStgData
Description : Procedure to upload daily Cards
Contracts Details data to Vision staging table and from staging
table to the main target table
[CONTRACTS_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getcardsContStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getcardsContStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table Cards


CONTRACTS_FEED_STG population......');

BEGIN

writeLogInfo('INSERT INTO CONTRACTS_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,CUSTOMER_ID,
VISION_OUC,VISION_SBU,
ACCOUNT_OFFICER,DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
MATURITY_DATE,DAYS_REMAINING_MAT,
DAYS_START_MAT,CONTRACT_STATUS,
RECORD_TYPE,SOURCE_ID,
MIS_CURRENCY,PRINCIPAL_GL,
DIS_AMT,CURRENT_AC_NO,
FEED_DATE,PRODUCT,
RUN_STATUS ,DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
T1.CARD_NO CONTRACT_ID,
NVL(CUSTOMER_ID,T1.CIN) CUSTOMER_ID,
''84'' VISION_OUC,
NVL(VISION_SBU,''NA'') VISION_SBU,
NVL(ACCOUNT_OFFICER,''NA'')
ACCOUNT_OFFICER,
''CARD'' DEAL_TYPE,
''CARD'' DEAL_SUB_TYPE,
V_FROM_DT START_DATE,
V_THRU_DT MATURITY_DATE,
V_THRU_DT - SYSDATE DAYS_REMAINING_MAT,
V_THRU_DT- V_FROM_DT DAYS_

START_MAT,
CASE WHEN NVL(T1.CARD_STATUS,''I'')
=''I'' THEN ''A'' ELSE ''C'' END CONTRACT_STATUS,
''5'' RECORD_TYPE,
''2'' SOURCE_ID,
''MUR'' MIS_CURRENCY,
''08100'' PRINCIPAL_GL,
CR_LIMIT PRINCIPAL_AMOUNT,
T4.acc_no Current_Account_no,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
sysdate Date_last_modified,
sysdate Date_Creation
FROM CARD_MASTER' || V_DB_Link || '
T1,CUSTOMER_MASTER' || V_DB_Link || ' T2,ACCOUNTS_MASTER' || V_DB_Link ||
' T4,
(SELECT DISTINCT
CARD_NO,SUBSTR(T3.ACC_NO,4,7) CUSTOMER_ID,ACCOUNT_NAME,T4.VISION_SBU
,Vision_OUC,ACCOUNT_OFFICER
FROM SI_TB' || V_DB_Link || '
T3,ACCOUNTS_DLY T4
WHERE T3.ACC_NO = T4.ACCOUNT_NO
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||'
And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||')
T3
where T1.Cin =T2.Cin(+)
And T1.CARD_NO =T3.CARD_NO(+)
And T1.CARD_NO =T4.CARD_NO(+)
ANd T1.CARD_TYPE =''C''
and
NVL(ISSUE_DATE,'||''''||G_Current_Business_Date ||''''||') > ' || '''' ||
G_LastBusinessDateRun || '''');

EXECUTE IMMEDIATE ('INSERT INTO CONTRACTS_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,CUSTOMER_ID,
VISION_OUC,VISION_SBU,
ACCOUNT_OFFICER,DEAL_TYPE,
DEAL_SUB_TYPE,START_DATE,
MATURITY_DATE,DAYS_REMAINING_MAT,
DAYS_START_MAT,CONTRACT_STATUS,
RECORD_TYPE,SOURCE_ID,
MIS_CURRENCY,PRINCIPAL_GL,
DIS_AMT,CURRENT_AC_NO,
FEED_DATE,PRODUCT,
RUN_STATUS ,DATE_LAST_MODIFIED,DATE_CREATION)
SELECT '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
T1.CARD_NO CONTRACT_ID,
NVL(CUSTOMER_ID,T1.CIN) CUSTOMER_ID,
''84'' VISION_OUC,
NVL(VISION_SBU,''NA'') VISION_SBU,
NVL(ACCOUNT_OFFICER,''NA'')
ACCOUNT_OFFICER,
''CARD'' DEAL_TYPE,
''CARD'' DEAL_SUB_TYPE,
V_FROM_DT START_DATE,
V_THRU_DT MATURITY_DATE,
V_THRU_DT - SYSDATE DAYS_REMAINING_MAT,
V_THRU_DT- V_FROM_DT DAYS_START_MAT,
CASE WHEN NVL(T1.CARD_STATUS,''I'')
=''I'' THEN ''A'' ELSE ''C'' END CONTRACT_STATUS,
''5'' RECORD_TYPE,
''2'' SOURCE_ID,
''MUR'' MIS_CURRENCY,
''08100'' PRINCIPAL_GL,
CR_LIMIT PRINCIPAL_AMOUNT,
T4.acc_no Current_Account_no,
'||''''||G_Current_Business_Date
||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
sysdate Date_last_modified,
sysdate Date_Creation
FROM CARD_MASTER' || V_DB_Link || '
T1,CUSTOMER_MASTER' || V_DB_Link || ' T2,ACCOUNTS_MASTER' || V_DB_Link ||
' T4,
(SELECT DISTINCT
CARD_NO,SUBSTR(T3.ACC_NO,4,7)
CUSTOMER_ID,ACCOUNT_NAME,T4.VISION_SBU,Vision_OUC ,ACCOUNT_OFFICER
FROM SI_TB' || V_DB_Link || '
T3,ACCOUNTS_DLY T4
WHERE T3.ACC_NO = T4.ACCOUNT_NO
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||'
And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||')
T3
where T1.Cin =T2.Cin(+)
And T1.CARD_NO =T3.CARD_NO(+)
And T1.CARD_NO =T4.CARD_NO(+)
ANd T1.CARD_TYPE =''C''
and
NVL(ISSUE_DATE,'||''''||G_Current_Business_Date ||''''||') > ' || '''' ||
G_LastBusinessDateRun || '''');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables CARD_MASTER /
CUSTOMER_MASTER Does not exists/not accessiable !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACTS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getcardsContStgData;

/*#######################################################################
##################################################
Name : getDpdCntStgData
Description : Procedure to upload daily Cards DPD
Count Details data to Vision staging table and from staging
table to the main target table [DPD_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit
Table Name Query Insert Update
Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getDpdCntStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getDpdCntStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Before Calling TEMP_ARREAR_CR


Procedure......');

BEGIN

EXECUTE IMMEDIATE ('drop table TEMP_ARR_DTL purge');

EXCEPTION WHEN OTHERS


THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The TEMP_ARR_DTL table has already
been dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop TEMP_ARR_DTL !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

BEGIN

writeLogInfo('CREATE TABLE TEMP_ARR_DTL AS


SELECT T1.ACID ACID,FORACID FORACID,CUST_ID CUSTOMER_ID,
ACCT_TYPE ACCOUNT_TYPE,BAL_ON BALANCE_DATE,
GL_CODE VISION_GL,ACCT_CCY CURRENCY,OS_BAL
OUTSTANDING_BAL,
T3.DPD DPD,T3.DPD_AMT DPD_AMT,
to_date('||''''||G_Current_Business_Date ||''''||',''DD-
MON-RRRR'') FEED_DATE,
''DPDCNT'' PRODUCT,''N'' RUNSTATUS
from (
select
gam.acid acid,
foracid,
trim(GAm.cust_id) cust_id,
decode(gam.schm_type,''LAA'',''LOAN'',''OD'')
acct_type,
eod_date BAL_ON,
gl_sub_head_code gl_code,
acct_crncy_code acct_ccy,
tran_date_bal os_bal
from gam@FINACLEPROD,eab@FINACLEPROD
where gam.acid=eab.acid
and gam.acct_cls_flg=''N''
and gam.del_flg=''N''
and eab.eod_date=(select max(eod_date) from
eab@FINACLEPROD where eab.acid=gam.acid and eod_date <=
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR''))
and tran_date_bal <0
and acct_ownership !=''O''
and gam.schm_type = ''LAA''
) t1,
(
select acid,
(to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')-
to_date(min(t2.dmd_eff_date))) DPD ,
nvl(sum((t2.dmd_amt)-(t2.tot_adj_amt)),0)
DPD_AMT from
ldt@finacleprod t2
where
t2.shdl_num=(select max(shdl_num) from
lrs@finacleprod where lrs.acid=t2.acid and lrs.del_flg!=''Y'')
and t2.del_flg != ''Y''
and t2.DMD_OVDU_DATE
<=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t2.dmd_amt != t2.tot_adj_amt group by acid
having sum( (t2.dmd_amt-t2.tot_adj_amt))> 0 ) t3
where t1.acid=t3.acid
and t3.dpd !=0
UNION
select acid ACID,foracid FORACID,cust_id
CUSTOMER_ID,acct_type ACCOUNT_TYPE,bal_on BALANCE_DATE,
gl_code VISION_GL,acct_ccy CURRENCY,os_bal
OUTSTANDING_BAL,
to_number(substr(DPD,1,instr(DPD,''|'')-
1)) DPD,to_number(substr(DPD,instr(DPD,''|'')+1)) DPD_AMT,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') FEED_DATE,''DPDCNT'' PRODUCT,''N'' RUNSTATUS
from (
select t1.*,t2.vlmtexpiry,t2.vlimit,
fn_DPD_BAL(t1.acid,to_char(t1.bal_on,''DD-
MON-RRRR''),to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR''),T1.OS_BAL,t2.vlimit,t2.vlmtexpiry) DPD
from
(
select
gam.acid acid,
foracid,
trim(GAm.cust_id) cust_id,
decode(gam.schm_type,''LAA'',''LOAN'',''OD'') acct_type,
eod_date BAL_ON,
gl_sub_head_code gl_code,
acct_crncy_code acct_ccy,
tran_date_bal os_bal
from gam@FINACLEPROD,eab@FINACLEPROD
where gam.acid=eab.acid
and gam.acct_cls_flg=''N''
and gam.del_flg=''N''
and eab.eod_date=(select max(eod_date) from
eab@FINACLEPROD where eab.acid=gam.acid and eod_date <=
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR''))
and tran_date_bal <0
and acct_ownership !=''O''
and gam.schm_type in (''ODA'',''CAA'')
) t1,
(select acid,
max(to_char(LHT.lim_exp_date,''DD-MON-YYYY'')) vlmtexpiry
,sum(nvl(lht.SANCT_LIM,0)) vlimit
from lht@finacleprod
where LHT.applicable_date <=
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and LHT.status = ''A'' and
LHT.entity_cre_flg = ''Y'' and lht.del_flg != ''Y''
group by acid) t2
where t1.acid=t2.acid ) ');

EXECUTE IMMEDIATE ('CREATE TABLE TEMP_ARR_DTL AS


SELECT T1.ACID ACID,FORACID FORACID,CUST_ID CUSTOMER_ID,
ACCT_TYPE ACCOUNT_TYPE,BAL_ON BALANCE_DATE,
GL_CODE VISION_GL,ACCT_CCY CURRENCY,OS_BAL
OUTSTANDING_BAL,
T3.DPD DPD,T3.DPD_AMT DPD_AMT,
to_date('||''''||G_Current_Business_Date ||''''||',''DD-
MON-RRRR'') FEED_DATE,
''DPDCNT'' PRODUCT,''N'' RUNSTATUS
from (
select
gam.acid acid,
foracid,
trim(GAm.cust_id) cust_id,
decode(gam.schm_type,''LAA'',''LOAN'',''OD'')
acct_type,
eod_date BAL_ON,
gl_sub_head_code gl_code,
acct_crncy_code acct_ccy,
tran_date_bal os_bal
from gam@FINACLEPROD,eab@FINACLEPROD
where gam.acid=eab.acid
and gam.acct_cls_flg=''N''
and gam.del_flg=''N''
and eab.eod_date=(select max(eod_date) from
eab@FINACLEPROD where eab.acid=gam.acid and eod_date <=
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR''))
and tran_date_bal <0
and acct_ownership !=''O''
and gam.schm_type = ''LAA''
) t1,
(
select acid,
(to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')-
to_date(min(t2.dmd_eff_date))) DPD ,
nvl(sum((t2.dmd_amt)-(t2.tot_adj_amt)),0)
DPD_AMT from
ldt@finacleprod t2
where
t2.shdl_num=(select max(shdl_num) from
lrs@finacleprod where lrs.acid=t2.acid and lrs.del_flg!=''Y'')
and t2.del_flg != ''Y''
and t2.DMD_OVDU_DATE
<=to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and t2.dmd_amt != t2.tot_adj_amt group by acid
having sum( (t2.dmd_amt-t2.tot_adj_amt))> 0 ) t3
where t1.acid=t3.acid
and t3.dpd !=0
UNION
select acid ACID,foracid FORACID,cust_id
CUSTOMER_ID,acct_type ACCOUNT_TYPE,bal_on BALANCE_DATE,
gl_code VISION_GL,acct_ccy CURRENCY,os_bal
OUTSTANDING_BAL,
to_number(substr(DPD,1,instr(DPD,''|'')-
1)) DPD,to_number(substr(DPD,instr(DPD,''|'')+1)) DPD_AMT,
to_date('||''''||G_Current_Business_Date
||''''||',''DD-MON-RRRR'') FEED_DATE,''DPDCNT'' PRODUCT,''N'' RUNSTATUS
from (
select t1.*,t2.vlmtexpiry,t2.vlimit,
fn_DPD_BAL(t1.acid,to_char(t1.bal_on,''DD-
MON-RRRR''),to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR''),T1.OS_BAL,t2.vlimit,t2.vlmtexpiry) DPD
from
(
select
gam.acid acid,
foracid,
trim(GAm.cust_id) cust_id,

decode(gam.schm_type,''LAA'',''LOAN'',''OD'') acct_type,
eod_date BAL_ON,
gl_sub_head_code gl_code,
acct_crncy_code acct_ccy,
tran_date_bal os_bal
from gam@FINACLEPROD,eab@FINACLEPROD
where gam.acid=eab.acid
and gam.acct_cls_flg=''N''
and gam.del_flg=''N''
and eab.eod_date=(select max(eod_date) from
eab@FINACLEPROD where eab.acid=gam.acid and eod_date <=
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR''))
and tran_date_bal <0
and acct_ownership !=''O''
and gam.schm_type in (''ODA'',''CAA'')
) t1,
(select acid,
max(to_char(LHT.lim_exp_date,''DD-MON-YYYY'')) vlmtexpiry
,sum(nvl(lht.SANCT_LIM,0)) vlimit
from lht@finacleprod
where LHT.applicable_date <=
to_date('||''''||G_Current_Business_Date ||''''||',''DD-MON-RRRR'')
and LHT.status = ''A'' and
LHT.entity_cre_flg = ''Y'' and lht.del_flg != ''Y''
group by acid) t2
where t1.acid=t2.acid ) ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Create TEMP_ARR_DTL !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

writeLogInfo('Beginning staging table Cards DPD_FEED_STG


population......');

BEGIN

writeLogInfo('INSERT INTO DPD_FEED_STG (


COUNTRY,LE_BOOK,

YEAR_MONTH,CONTRACT_ID,DAYS_PAST_DUE,

DPD_Amount,MOVEMENT_DR,MOVEMENT_CR,
MIN_BALANCE,MAX_BALANCE,
FEED_DATE,PRODUCT,
RUN_STATUS)
SELECT
'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,

TO_CHAR(TO_DATE('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR''),''RRRRMM'') YEAR_MONTH,
FORACID CONTRACT_ID,
DPD DAYS_PAST_DUE,
DPD_AMT DPD_Amount,
0 MOVEMENT_DR,
0 MOVEMENT_CR,
0 MIN_BALANCE,
0 MAX_BALANCE,
FEED_DATE,
PRODUCT,
RUNSTATUS RUN_STATUS
FROM TEMP_ARR_DTL where DPD!=0 ');

EXECUTE IMMEDIATE ('INSERT INTO DPD_FEED_STG (


COUNTRY,LE_BOOK,

YEAR_MONTH,CONTRACT_ID,DAYS_PAST_DUE,

DPD_Amount,MOVEMENT_DR,MOVEMENT_CR,
MIN_BALANCE,MAX_BALANCE,
FEED_DATE,PRODUCT,
RUN_STATUS)
SELECT
'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,

TO_CHAR(TO_DATE('||''''||G_Current_Business_Date ||''''||',''DD-MON-
RRRR''),''RRRRMM'') YEAR_MONTH,
FORACID CONTRACT_ID,
DPD DAYS_PAST_DUE,
DPD_AMT DPD_Amount,
0 MOVEMENT_DR,
0 MOVEMENT_CR,
0 MIN_BALANCE,
0 MAX_BALANCE,
FEED_DATE,
PRODUCT,
RUNSTATUS RUN_STATUS
FROM TEMP_ARR_DTL where DPD!=0 ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables CARD_MASTER / GAC
Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate /DPD_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getDpdCntStgData;

/*#######################################################################
##################################################
Name : getCardContExtrasStgData
Description : Procedure to upload daily Finacle data
to Vision staging table and from staging
table to the main target table
[CONTRACT_EXTRAS_FEED_STG].
Author : Mallikarjuna rao.Katta
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/
FUNCTION getCardContExtrasStgData(P_Country IN VARCHAR2,
P_Le_Book IN VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN
VARCHAR2, P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2,
P_DBLink IN VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getCardContExtrasStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

/* Dump the required records into the staging table, to be


processed in the next stage
BEGIN
EXECUTE IMMEDIATE ('DROP TABLE
'||V_Schema_Name||'CONTRACT_EXTRAS_FEED_STG');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST
THEN
writeLogInfo('The staging table has already been
dropped - FYI.');
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to Drop CONTRACT_EXTRAS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;*/

writeLogInfo('Time of current execution obtained


from Oracle is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') ||
']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table Card


CONTRACT_EXTRAS_FEED_STG population......');

BEGIN

writeLogInfo('INSERT INTO CONTRACT_EXTRAS_FEED_STG (


COUNTRY,LE_BOOK,
CONTRACT_ID,
CUSTOMER_ID,SECTOR_CODE,
SUB_SECTOR_CODE,BORROWER_CATEGORY_CODE,
PURPOSE_OF_ADVANCE,TYPE_OF_ADVANCE,
NATURE_OF_ADVANCE,GUAR_COVER_CODE,NAICS_CODE,
EMPLOYEE_ID,CUMMULATIVE_DEBIT,
CUMMULATIVE_CREDIT,LAST_TRAN_DATE,
ACCOUNT_CLOSING_DATE,PERFORMANCE_CLASS,
SUB_PERFORMANCE_CLASS,
USER_CLASSIFICATION_DATE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,SANCT_AUTH_CODE,ORIGINAL_OUC)
SELECT DISTINCT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
T1.CARD_NO CONTRACT_ID,
TRIM(NVL(CUSTOMER_ID,CIN)) CUSTOMER_ID,
NVL(SECTOR_CODE,''NA'') SECTOR_CODE,
NVL(SUB_SECTOR_CODE,''NA'') SUB_SECTOR_CODE,
''NA'' BORROWER_CATEGORY_CODE,
''NA'' PURPOSE_OF_ADVANCE,
''NA'' TYPE_OF_ADVANCE,
''NA'' NATURE_OF_ADVANCE,
''NA'' GUAR_COVER_CODE,
Null NAICS_CODE,
Null EMPLOYEE_ID,
0 CUMMULATIVE_DEBIT,
0 CUMMULATIVE_CREDIT,
Null LAST_TRAN_DATE,
CLOSE_DATE ACCOUNT_CLOSING_DATE,
CASE WHEN NVL(DEL_COUNT,0) =0 Then ''001'' Else
''002'' End PERFORMANCE_CLASS,
Case When DEL_COUNT = 0 Then ''000''
When DEL_COUNT = 1 Then ''001''
When DEL_COUNT = 2 Then ''001''
When DEL_COUNT = 3 Then ''001''
When DEL_COUNT = 4 Then ''021''
When DEL_COUNT = 5 Then ''021''
When DEL_COUNT = 6 Then ''021''
else
''031'' End SUB_PERFORMANCE_CLASS,
T3.START_EFF_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,
NULL SANCT_AUTH_CODE,
''18'' ORIGINAL_OUC
FROM
Accounts_Master@cardsdb T1,(SELECT DISTINCT
CARD_NO,SUBSTR(T3.ACC_NO,4,7) CUSTOMER_ID,SECTOR_CODE,SUB_SECTOR_CODE
FROM SI_TB@cardsDb T3,ACCOUNTS_DLY T4
WHERE T3.ACC_NO = T4.ACCOUNT_NO
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_Country||'''' ||'
And T4.Le_Book ='||''''||P_Le_Book||'''' ||'
) T2 ,
(SELECT CARD_NO,MAX(START_EFF_DATE)
START_EFF_DATE FROM HOST_NEGATIVE_FILE@cardsdb GROUP BY CARD_NO) T3
WHERE T1.CArd_No =T2.CArd_no(+)
and T1.CArd_No =T3.CArd_no(+)
and Auth_DATE >'||''''||G_LastBusinessDateRun||''''
||' ');

EXECUTE IMMEDIATE ('INSERT INTO CONTRACT_EXTRAS_FEED_STG


(
COUNTRY,LE_BOOK,
CONTRACT_ID,
CUSTOMER_ID,SECTOR_CODE,
SUB_SECTOR_CODE,BORROWER_CATEGORY_CODE,
PURPOSE_OF_ADVANCE,TYPE_OF_ADVANCE,
NATURE_OF_ADVANCE,GUAR_COVER_CODE,NAICS_CODE,
EMPLOYEE_ID,CUMMULATIVE_DEBIT,
CUMMULATIVE_CREDIT,LAST_TRAN_DATE,
ACCOUNT_CLOSING_DATE,PERFORMANCE_CLASS,
SUB_PERFORMANCE_CLASS,
USER_CLASSIFICATION_DATE,
FEED_DATE,PRODUCT,
RUN_STATUS,DATE_LAST_MODIFIED,
DATE_CREATION,SANCT_AUTH_CODE,ORIGINAL_OUC)
SELECT DISTINCT
'||''''||P_Country||'''' ||' COUNTRY,
'||''''||P_Le_Book||'''' ||' LE_BOOK,
T1.CARD_NO CONTRACT_ID,
TRIM(NVL(CUSTOMER_ID,CIN)) CUSTOMER_ID,
NVL(SECTOR_CODE,''NA'') SECTOR_CODE,
NVL(SUB_SECTOR_CODE,''NA'') SUB_SECTOR_CODE,
''NA'' BORROWER_CATEGORY_CODE,
''NA'' PURPOSE_OF_ADVANCE,
''NA'' TYPE_OF_ADVANCE,
''NA'' NATURE_OF_ADVANCE,
''NA'' GUAR_COVER_CODE,
Null NAICS_CODE,
Null EMPLOYEE_ID,
0 CUMMULATIVE_DEBIT,
0 CUMMULATIVE_CREDIT,
Null LAST_TRAN_DATE,
CLOSE_DATE ACCOUNT_CLOSING_DATE,
CASE WHEN NVL(DEL_COUNT,0) =0 Then ''001'' Else
''002'' End PERFORMANCE_CLASS,
Case When DEL_COUNT = 0 Then ''000''
When DEL_COUNT = 1 Then ''001''
When DEL_COUNT = 2 Then ''001''
When DEL_COUNT = 3 Then ''001''
When DEL_COUNT = 4 Then ''021''
When DEL_COUNT = 5 Then ''021''
When DEL_COUNT = 6 Then ''021''
else
''031'' End SUB_PERFORMANCE_CLASS,
T3.START_EFF_DATE,
'||''''||G_Current_Business_Date ||''''||'
FEED_DATE,
'||''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS,
SYSDATE DATE_LAST_MODIFIED,
SYSDATE DATE_CREATION,
NULL SANCT_AUTH_CODE,
''018'' ORIGINAL_OUC
FROM
Accounts_Master@cardsdb T1,(SELECT DISTINCT
CARD_NO,SUBSTR(T3.ACC_NO,4,7) CUSTOMER_ID,SECTOR_CODE,SUB_SECTOR_CODE
FROM SI_TB@cardsDb T3,ACCOUNTS_DLY T4
WHERE T3.ACC_NO = T4.ACCOUNT_NO
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_Country||'''' ||'
And T4.Le_Book ='||''''||P_Le_Book||'''' ||'
) T2 ,
(SELECT CARD_NO,MAX(START_EFF_DATE)
START_EFF_DATE FROM HOST_NEGATIVE_FILE@cardsdb GROUP BY CARD_NO) T3
WHERE T1.CArd_No =T2.CArd_no(+)
and T1.CArd_No =T3.CArd_no(+)
and Auth_DATE >'||''''||G_LastBusinessDateRun||''''
||' ');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables Accounts_master
Does not exists/not accessiable !! Aborting execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CArd CONTRACT_EXTRAS_FEED_STG !!');

RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getCardContExtrasStgData;

/*#######################################################################
##################################################
Name : getcardsFinStgData
Description : Procedure to upload daily Cards
Financials Details data to Vision staging table and from staging
table to the main target table
[ENRICHMENT_FEED_STG].
Author : Mallikarjuna.Katta
Calling Script :
Assumptions : None
Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CURRENCY_RATES_DAILY_STG x
x
RTL x

#########################################################################
################################################*/

FUNCTION getcardsFinStgData(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_SourceSystem IN VARCHAR2, P_DBLink IN
VARCHAR2) RETURN NUMBER AS
V_Schema_Name VARCHAR2(40);
V_DB_Link VARCHAR2(40);

BEGIN
/* Start of local initializations */

IF (P_Schema_Name IS NOT NULL) THEN


BEGIN
V_Schema_Name := P_Schema_Name||'.';
END;
ELSE
V_Schema_Name := NULL;
END IF;

IF (P_DBLink IS NOT NULL) THEN


BEGIN
V_DB_Link := '@'||P_DBLink;
END;
ELSE
V_DB_Link := NULL;
END IF;

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

retVal := doPreliminaryValidations(P_Country, P_Le_Book ,


'getcardsFinStgData');

IF (retVal != 0 AND retVal != RERUN_EXIT)


THEN
writeLogInfo('Error performing preliminary validations !!
Aborting further execution !!');
RETURN ERRONEOUS_EXIT;
ElsIF (retVal = RERUN_EXIT) Then
writeLogInfo('Extraction Process Completed !!,Please
check in VISION_FEED_CONTROLS');
RETURN SUCCESSFUL_EXIT;
END IF;

writeLogInfo('Time of current execution obtained from Oracle


is [' || TO_CHAR(G_CurrentTime, 'DD-MM-RRRR HH24:MI:SS') || ']');
updateVisionFeedControlsRecord('I');
COMMIT;

writeLogInfo('Beginning staging table Cards


ENRICHMENT_FEED_STG population......');

/* For Finacle and Cards syncranize the Data . Users want to


process like this.*/
BEGIN
NextProcessDate := NULL;

EXECUTE IMMEDIATE 'SELECT TO_CHAR(FN_NEXT_WORKDAY' ||


V_DB_Link || ' ('''||G_Current_Business_Date ||''',''999''),''DD-MON-
RRRR'') FROM DUAL ' INTO NextProcessDate;

EXCEPTION
WHEN OTHERS
THEN
writeErrLogInfo('Unhandled Exception raised
trying to populate FN_NEXT_WORKDAY !!');

RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('DELETE FROM ENRICHMENT_FEED_STG


WHERE COUNTRY = '''||G_Country||'''
AND LE_BOOK = '''||G_Le_Book||'''
AND BUSINESS_DATE= '''||NextProcessDate||'''
AND PRODUCT = '''||G_Feed_Name||''' ');

EXECUTE IMMEDIATE ('DELETE FROM ENRICHMENT_FEED_STG


WHERE COUNTRY = '''||G_Country||'''
AND LE_BOOK = '''||G_Le_Book||'''
AND Feed_Date = '''||NextProcessDate||'''
AND PRODUCT = '''||G_Feed_Name||'''');

EXCEPTION
WHEN NO_DATA_FOUND
THEN
G_Error_Msg:='Delete Process completed successfully
for ENRICHMENT_FEED_STG Record Cnt:'||SQL%Rowcount;
writeLogInfo(G_Error_Msg);
WHEN OTHERS
THEN
G_Error_Msg:='Error While Delete From
ENRICHMENT_FEED_STG:';
writeErrLogInfo(G_Error_Msg);
RETURN ERRONEOUS_EXIT;
END;

BEGIN

writeLogInfo('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,TRAN_CCY,
TRAN_TYPE,TRAN_AMT,
TRAN_DATE ,VALUE_DATE,
SCHM_TYPE,FEED_DATE,
PRODUCT,RUN_STATUS,
MIS_CURRENCY,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT DISTINCT '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,Cin) customer_id,
T1.CARD_NO Contract_id,
NVL(T3.ACC_NO,T2.ACC_NO) Office_account,
Substr( NVL(T3.ACC_NO,T2.ACC_NO),4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
Case when (NVL(payment1,0) - (NVL(outstanding,0)
+ NVL(Unbilled,0))) <0 Then ''D'' Else ''C'' End Tran_Type,
/*ABS((outstanding + Unbilled) - payment1)
Tran_amt, */
Case When ABS((outstanding + Unbilled) -
payment1) = 0 Then TO_NUMBER(fn_cr_os_bal@cardsdb(T1.card_no)) Else
ABS((outstanding + Unbilled) - payment1) End Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
''MUR'' MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from
(
SELECT
CRD_DES CARD_NO,CUST
CIN,ACCNO,CRD_DES,REGID,REGNAME,BRCODE,BRNAME,GRPID,GRPNAME,DELCNT,BALAMT
,UNBILL1+UNBILL2+UNBILL3 AS UNBILLED,
UNSETTLE1+UNSETTLE2 AS UNSETTLED,PAYMENT1+PAYMENT2 AS
PAYMENT1,OUTSTANDING,
aBS((outstanding + UNBILL1+UNBILL2+UNBILL3) - payment1)
Tran_amt
From
(SELECT

card_no,ACCNO,REGID,REGNAME,BRCODE,BRNAME,GRPID,GRPNAME,DELCNT,
(SELECT
AM.CARD_NO FROM CUSTOMER_MASTER' || V_DB_Link || '
CM,ACCOUNTS_MASTER' || V_DB_Link || ' AM
WHERE CM.CIN=AM.CIN AND AM.NOH=1 AND AM.Acc_No = ACCNO)
AS CRD_DES,
(SELECT
AM.CIN FROM CUSTOMER_MASTER' || V_DB_Link || '
CM,ACCOUNTS_MASTER' || V_DB_Link || ' AM
WHERE CM.CIN=AM.CIN AND AM.NOH=1 AND AM.Acc_No = ACCNO) AS
CUST,
(SELECT
nvl(nvl(sum(local_amt),0),0) bal_amt From BILL_FEE_TBL' ||
V_DB_Link || '
Where txn_type not in (''DEP'',''REFUN'',''RCHRG_CA'',
''RCHRG_PUR'')
And BILL_flag <> ''N'' and bill_date is not NULL
AND Acc_no = ACCNO) AS BALAMT,
(Select nvl(nvl(sum(local_amt),0),0) bal_amt
From BILL_FEE_TBL' || V_DB_Link || ' Where txn_type not in
(''DEP'', ''REFUN'',''RCHRG_CA'', ''RCHRG_PUR'')
and bill_flag=''N''
and bill_date is NULL AND Acc_no = ACCNO) AS UNBILL1,
(Select nvl(sum(nvl(SETTLEMENT_AMT,0)),0) SETTLEMENT_AMT
From CRD_HOST' || V_DB_Link || ' Where
NVL(REVERSAL_FLAG,''N'')=''N''
AND RESPONSE_CODE=''00'' AND substr(proc_code,1,2) in
(''00'','||''''||P_Le_Book||'''' ||',''02'',''20'')
and SETTLEMENT_FLAG=''S''
AND Ac_no = ACCNO) AS UNBILL2,
(Select nvl(sum(nvl(SETTLEMENT_AMT,0)),0) SETTLEMENT_AMT
From MANU_HOST' || V_DB_Link || ' Where SETTLEMENT_FLAG=''S''
AND Ac_no = ACCNO) AS UNBILL3,
(Select nvl(sum(nvl(SETTLEMENT_AMT,0)),0) SETTLEMENT_AMT
From CRD_HOST' || V_DB_Link || ' Where
NVL(REVERSAL_FLAG,''N'')=''N''
AND RESPONSE_CODE=''00'' AND substr(proc_code,1,2) in
(''00'','||''''||P_Le_Book||'''' ||',''02'',''20'')
AND SETTLEMENT_FLAG IN (''Y'') AND Ac_No = ACCNO) AS
UNSETTLE1,
(Select nvl(sum(nvl(SETTLEMENT_AMT,0)),0)SETTLEMENT_AMT
From MANU_HOST' || V_DB_Link || ' Where SETTLEMENT_FLAG=''Y''
AND Ac_No = ACCNO) AS UNSETTLE2,
(Select nvl(sum(abs(nvl(Bal_Amt,0))),0) PAYMENT
From Bill_fee_tbl' || V_DB_Link || ' Where txn_type in
(''DEP'',''REFUN'',''RCHRG_CA'',''RCHRG_PUR'')
AND Acc_No = ACCNO
and bill_flag <> ''N'') AS PAYMENT1,
(Select nvl(sum(abs(nvl(local_Amt,0))),0) PAYMENT
From Bill_fee_tbl' || V_DB_Link || '
Where txn_type in
(''DEP'',''REFUN'',''RCHRG_CA'',''RCHRG_PUR'')
AND Acc_No = ACCNO and bill_flag = ''N''
and bill_date is null) AS PAYMENT2,
(Select Distinct Nvl(OutStanding,0) as Bill_OS
From STMT_TBL' || V_DB_Link || ' Where
ACCOUNT_NO= ACCNO
AND Bill_Date in (Select Max(Bill_Date)
From STMT_TBL' || V_DB_Link || ' St Where ST.Account_No =
ACCNO)) AS OUTSTANDING
FROM ( Select Distinct am.card_no,AM.ACC_NO AS ACCNO,NULL AS
CRD_DES,RM.Reg_ID AS REGID,
RM.Reg_Name AS REGNAME,BR.BR_Code AS BRCODE,CIN,
BR.Br_Name AS BRNAME, GR.GRP_ID AS GRPID,
GR.GRP_Name AS GRPNAME,AM.Del_Count AS DELCNT,
NULL AS BALAMT,
NULL AS UNBILL1,
NULL AS UNBILL2,
NULL AS UNBILL3,
NULL AS UNSETTLE1,
NULL AS UNSETTLE2,
NULL AS PAYMENT1 ,
NULL AS OUTSTANDING
from
ACCOUNTS_MASTER' || V_DB_Link || ' AM,
CARD_GRP_TB' || V_DB_Link || ' GR,
BRANCH_MASTER' || V_DB_Link || '
BR,REGION_MASTER' || V_DB_Link || ' RM
Where AM.Reg_ID=RM.Reg_ID
AND AM.BR_ID=BR.BR_Code
AND GR.GRP_ID=AM.GRP_ID
AND GR.Card_Type=''C''
AND AM.Card_No IS NOT NULL
ORDER BY AM.ACC_NO))) T1, product_gl_account' || V_DB_Link || ' T2,
watchlist_accounts' || V_DB_Link || ' t3,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_Ouc from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||' And
T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T4
wHERE SUBSTR(T1.CARD_NO,1,6) =T2.PRODUCT(+)
AND T1.CARD_NO =T3.CARD_NO(+)
And T1.CARD_NO = T4.CARD_NO(+)
AND T1.CARD_NO IS NOT NULL /* Above Query is Base
line Query for Daily */
Union All
select '||''''||P_COUNTRY||'''' ||' COUNTRY, /* Below
All The Queries is Profit And Loss For Daily */
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,STMT_TBL' || V_DB_Link
|| ' BT,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||' And
T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
AND BT.CARD_NO = CM.CARD_NO AND
Bf.CARD_NO = T3.CARD_NO(+) AND
(NVL(CUR_CA_INT,0) > 0 or NVL(CUR_CAFEE_INT,0) > 0 or
NVL(CUR_FEE_INT,0) > 0 or NVL(CUR_CHRG_INT,0) > 0 or NVL(CUR_PUR_INT,0) >
0)
AND ACC_CATEG=''Revolving Interest''
And Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
and To_Date(Bt.bill_date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bt.bill_date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5)
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||' And
T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
--And Bf.BILL_CARD_NO = cm.CARD_NO
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID,''TEST'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''08'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Enhancement Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5)
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||' And
T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
--And Bf.BILL_CARD_NO = cm.CARD_NO
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID,''TEST'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''07'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Add-On Card Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5)
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||'
And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID,''TEST'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''06'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Add-On Card Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5)
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||'
And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID , ''FEE'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''05'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Repin Generation Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5)
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||' And
T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID , ''FEE'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''04'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Renewal Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5)
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||'
And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID , ''FEE'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''03'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Replacement Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5)
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||' And
T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID , ''FEE'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''02'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Annual Subscription Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5)
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||'
And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID , ''FEE'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)='||''''||P_Le_Book||'''' ||' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Joining Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5)
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||'
And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID , ''FEE'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''OF'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Over-limit charges''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5)
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||'
And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID , ''FEE'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''LF'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Late Payment Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5)
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||' And
T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''CAFEE'' AND
BF.AUTHID <> ''ADJ'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Cash advance fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5)
Union ALL /* Revesal Transaction Identification */
SELECT
'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CD.Cin) customer_id,
bT.card_no Contract_id,
BA.ACC_NO Office_Account,
Substr(BA.acc_no,4,5) Vision_Gl,
Substr(BA.acc_no,1,3)Vision_Ouc,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') Tran_ccy,
''D'' Tran_Type,
SUM(ABS(NVL(BT.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
FROM
BILL_FEE_TBL' || V_DB_Link || ' BT,
CARD_MASTER' || V_DB_Link || ' CD,
ADJUST_TB' || V_DB_Link || ' AT1,
BANKAC_TB' || V_DB_Link || ' BA,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||''''
||' And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
WHERE
BT.BILL_CARD_NO = CD.CARD_NO AND
BT.BILL_CARD_NO = T3.CARD_NO(+) AND
BT.AUTHID = ''ADJ'' AND
BT.REF_NO = AT1.REFNO AND
CD.GRP_ID=BA.GRP_ID AND
BT.BILL_CARD_NO = AT1.CARD_NO AND
AT1.STATUS_FLG=''T'' AND
trunc(BT.IN_DATE) >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'') and
trunc(BT.IN_DATE) <= to_date('||''''||G_Current_Business_Date
||''''||',''dd-MON-RRRR'')
and BA.GRP_ID=CD.GRP_ID and
BA.ACC_CATEG =AT1.REMARKS AND
AT1.TXN_TYPE=''CR''
AND BT.TXN_TYPE=''DEP''
AND Substr(BA.ACC_NO,4,5) like ''4%''
Group By
NVL(Customer_id,CD.Cin),
bT.card_no,
BA.ACC_NO,
Substr(BA.acc_no,4,5),
Substr(BA.acc_no,1,3),
txn_ccy');

EXECUTE IMMEDIATE ('INSERT INTO ENRICHMENT_FEED_STG (


COUNTRY,LE_BOOK,
CUSTOMER_ID,CONTRACT_ID,
OFFICE_ACCOUNT,VISION_GL,
VISION_OUC,COST_CENTER,
PROFIT_CENTER,TRAN_CCY,
TRAN_TYPE,TRAN_AMT,
TRAN_DATE ,VALUE_DATE,
SCHM_TYPE,FEED_DATE,
PRODUCT,RUN_STATUS,
MIS_CURRENCY,DATE_LAST_MODIFIED,
DATE_CREATION)
SELECT DISTINCT '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,Cin) customer_id,
T1.CARD_NO Contract_id,
NVL(T3.ACC_NO,T2.ACC_NO) Office_account,
Substr( NVL(T3.ACC_NO,T2.ACC_NO),4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
Case when (NVL(payment1,0) - (NVL(outstanding,0)
+ NVL(Unbilled,0))) <0 Then ''D'' Else ''C'' End Tran_Type,
/*ABS((outstanding + Unbilled) - payment1)
Tran_amt, */
Case When ABS((outstanding + Unbilled) -
payment1) = 0 Then TO_NUMBER(fn_cr_os_bal@cardsdb(T1.card_no)) Else
ABS((outstanding + Unbilled) - payment1) End Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
''MUR'' MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from
(
SELECT
CRD_DES card_no,Cust
CIN,ACCNO,CRD_DES,REGID,REGNAME,BRCODE,BRNAME,GRPID,GRPNAME,DELCNT,BALAMT
,UNBILL1+UNBILL2+UNBILL3 AS UNBILLED,
UNSETTLE1+UNSETTLE2 AS UNSETTLED,PAYMENT1+PAYMENT2 AS
PAYMENT1,OUTSTANDING,
aBS((outstanding + UNBILL1+UNBILL2+UNBILL3) - payment1)
Tran_amt
From
(SELECT

card_no,ACCNO,REGID,REGNAME,BRCODE,BRNAME,GRPID,GRPNAME,DELCNT,
(SELECT
AM.CARD_NO FROM CUSTOMER_MASTER' || V_DB_Link || '
CM,ACCOUNTS_MASTER' || V_DB_Link || ' AM
WHERE CM.CIN=AM.CIN AND AM.NOH=1 AND AM.Acc_No = ACCNO)
AS CRD_DES,
(SELECT
AM.CIN FROM CUSTOMER_MASTER' || V_DB_Link || '
CM,ACCOUNTS_MASTER' || V_DB_Link || ' AM
WHERE CM.CIN=AM.CIN AND AM.NOH=1 AND AM.Acc_No = ACCNO)
AS Cust,
(SELECT
nvl(nvl(sum(local_amt),0),0) bal_amt From BILL_FEE_TBL' ||
V_DB_Link || '
Where txn_type not in (''DEP'',''REFUN'',''RCHRG_CA'',
''RCHRG_PUR'')
And BILL_flag <> ''N'' and bill_date is not NULL
AND Acc_no = ACCNO) AS BALAMT,
(Select nvl(nvl(sum(local_amt),0),0) bal_amt
From BILL_FEE_TBL' || V_DB_Link || ' Where txn_type not in
(''DEP'', ''REFUN'',''RCHRG_CA'', ''RCHRG_PUR'')
and bill_flag=''N''
and bill_date is NULL AND Acc_no = ACCNO) AS UNBILL1,
(Select nvl(sum(nvl(SETTLEMENT_AMT,0)),0) SETTLEMENT_AMT
From CRD_HOST' || V_DB_Link || ' Where
NVL(REVERSAL_FLAG,''N'')=''N''
AND RESPONSE_CODE=''00'' AND substr(proc_code,1,2) in
(''00'','||''''||P_Le_Book||'''' ||',''02'',''20'')
and SETTLEMENT_FLAG=''S''
AND Ac_no = ACCNO) AS UNBILL2,
(Select nvl(sum(nvl(SETTLEMENT_AMT,0)),0) SETTLEMENT_AMT
From MANU_HOST' || V_DB_Link || ' Where SETTLEMENT_FLAG=''S''
AND Ac_no = ACCNO) AS UNBILL3,
(Select nvl(sum(nvl(SETTLEMENT_AMT,0)),0) SETTLEMENT_AMT
From CRD_HOST' || V_DB_Link || ' Where
NVL(REVERSAL_FLAG,''N'')=''N''
AND RESPONSE_CODE=''00'' AND substr(proc_code,1,2) in
(''00'','||''''||P_Le_Book||'''' ||',''02'',''20'')
AND SETTLEMENT_FLAG IN (''Y'') AND Ac_No = ACCNO) AS
UNSETTLE1,
(Select nvl(sum(nvl(SETTLEMENT_AMT,0)),0)SETTLEMENT_AMT
From MANU_HOST' || V_DB_Link || ' Where SETTLEMENT_FLAG=''Y''
AND Ac_No = ACCNO) AS UNSETTLE2,
(Select nvl(sum(abs(nvl(Bal_Amt,0))),0) PAYMENT
From Bill_fee_tbl' || V_DB_Link || ' Where txn_type in
(''DEP'',''REFUN'',''RCHRG_CA'',''RCHRG_PUR'')
AND Acc_No = ACCNO
and bill_flag <> ''N'') AS PAYMENT1,
(Select nvl(sum(abs(nvl(local_Amt,0))),0) PAYMENT
From Bill_fee_tbl' || V_DB_Link || '
Where txn_type in
(''DEP'',''REFUN'',''RCHRG_CA'',''RCHRG_PUR'')
AND Acc_No = ACCNO and bill_flag = ''N''
and bill_date is null) AS PAYMENT2,
(Select Distinct Nvl(OutStanding,0) as Bill_OS
From STMT_TBL' || V_DB_Link || ' Where
ACCOUNT_NO= ACCNO
AND Bill_Date in (Select Max(Bill_Date)
From STMT_TBL' || V_DB_Link || ' St Where ST.Account_No =
ACCNO)) AS OUTSTANDING
FROM ( Select Distinct am.card_no,AM.ACC_NO AS ACCNO,NULL AS
CRD_DES,RM.Reg_ID AS REGID,
RM.Reg_Name AS REGNAME,BR.BR_Code AS BRCODE,CIN,
BR.Br_Name AS BRNAME, GR.GRP_ID AS GRPID,
GR.GRP_Name AS GRPNAME,AM.Del_Count AS DELCNT,
NULL AS BALAMT,
NULL AS UNBILL1,
NULL AS UNBILL2,
NULL AS UNBILL3,
NULL AS UNSETTLE1,
NULL AS UNSETTLE2,
NULL AS PAYMENT1 ,
NULL AS OUTSTANDING
from
ACCOUNTS_MASTER' || V_DB_Link || ' AM,
CARD_GRP_TB' || V_DB_Link || ' GR,
BRANCH_MASTER' || V_DB_Link || '
BR,REGION_MASTER' || V_DB_Link || ' RM
Where AM.Reg_ID=RM.Reg_ID
AND AM.BR_ID=BR.BR_Code
AND GR.GRP_ID=AM.GRP_ID
AND GR.Card_Type=''C''
AND AM.Card_No IS NOT NULL
ORDER BY AM.ACC_NO)))T1, product_gl_account' || V_DB_Link || ' T2,
watchlist_accounts' || V_DB_Link || ' t3,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_Ouc from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||' And
T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T4
wHERE SUBSTR(T1.CARD_NO,1,6) =T2.PRODUCT(+)
AND T1.CARD_NO =T3.CARD_NO(+)
And T1.CARD_NO = T4.CARD_NO(+)
AND T1.CARD_NO IS NOT NULL /*Above Query is Base
line Query for Daily */
Union All
select '||''''||P_COUNTRY||'''' ||' COUNTRY, /*Below
All The Queries is Profit And Loss For Daily*/
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,STMT_TBL' || V_DB_Link
|| ' BT,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||' And
T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
AND BT.CARD_NO = CM.CARD_NO AND
Bf.CARD_NO = T3.CARD_NO(+) AND
(NVL(CUR_CA_INT,0) > 0 or NVL(CUR_CAFEE_INT,0) > 0 or
NVL(CUR_FEE_INT,0) > 0 or NVL(CUR_CHRG_INT,0) > 0 or NVL(CUR_PUR_INT,0) >
0)
AND ACC_CATEG=''Revolving Interest''
And Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
and To_Date(Bt.bill_date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bt.bill_date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5),
''800''
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||' And
T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID,''TEST'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''08'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Enhancement Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5),
''800''
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||' And
T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID,''TEST'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''07'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Add-On Card Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5),
''800''
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||'
And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID,''TEST'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''06'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Add-On Card Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5),
''800''
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||'
And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID,''FEE'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''05'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Repin Generation Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5),
''800''
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||' And
T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID , ''FEE'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''04'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Renewal Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5),
''800''
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||'
And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID , ''FEE'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''03'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Replacement Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5),
''800''
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||' And
T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID , ''FEE'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''02'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Annual Subscription Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5),
''800''
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||'
And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID , ''FEE'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)='||''''||P_Le_Book||'''' ||' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Joining Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5),
''800''
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||'
And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID , ''FEE'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''OF'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Over-limit charges''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5),
''800''
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||'
And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''FEE'' AND
NVL(BF.AUTHID , ''FEE'') <> ''ADJ'' AND
SUBSTR(MERC_ID,1,9)=''LF'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Late Payment Fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5),
''800''
union all
select '||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CM.Cin) customer_id,
bf.card_no Contract_id,
ab.C_acc_no Office_Account,
Substr( ab.C_acc_no,4,5) Vision_Gl,
''800'' VISION_OUC,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
''MUR'' Tran_ccy,
''C'' Tran_Type,
SUM(ABS(NVL(BF.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
from bill_fee_tbl' || V_DB_Link || ' bf,card_master' ||
V_DB_Link || ' cm,bankac_tb' || V_DB_Link || ' ab,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||'''' ||' And
T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
where BF.CARD_NO=CM.CARD_NO
and AB.GRP_ID=cm.grp_id
And Bf.CARD_NO = T3.CARD_NO(+) AND
BF.TXN_TYPE = ''CAFEE'' AND
BF.AUTHID <> ''ADJ'' AND
Cm.GRP_ID IN (SELECT GRP_ID FROM card_grp_tb' ||
V_DB_Link || ' where card_type=''C'')
AND ACC_CATEG=''Cash advance fees''
and To_Date(Bf.In_Date,''dd-MON-RRRR'') >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'')
And To_Date(Bf.In_Date,''dd-MON-RRRR'') <=
to_date('||''''||G_Current_Business_Date ||''''||',''dd-MON-RRRR'')
GROUP BY NVL(Customer_id,CM.Cin),
bf.card_no,
ab.C_acc_no,
txn_ccy,
Substr( ab.C_acc_no,4,5),
''800''
Union ALL /* Revesal Transaction Identification */
SELECT
'||''''||P_COUNTRY||'''' ||' COUNTRY,
'||''''||P_LE_BOOK||'''' ||' LE_BOOK,
NVL(Customer_id,CD.Cin) customer_id,
bT.card_no Contract_id,
BA.ACC_NO Office_Account,
Substr(BA.acc_no,4,5) Vision_Gl,
Substr(BA.acc_no,1,3)Vision_Ouc,
''NA'' COST_CENTER,
''NA'' PROFIT_CENTER,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') Tran_ccy,
''D'' Tran_Type,
SUM(ABS(NVL(BT.LOCAL_AMT,0))) Tran_amt,
'||''''||NextProcessDate ||''''||' Tran_date ,
'||''''||NextProcessDate ||''''||' Value_date,
''CARDS'' SCHM_TYPE,
'||''''||NextProcessDate ||''''||' FEED_DATE, '||
''''||G_Feed_Name||''''||' PRODUCT,
''N'' RUN_STATUS ,
NVL((select CURR_CODE From currency_master' ||
V_DB_Link || ' Where NUM_CURR_CODE = txn_ccy),''MUR'') MIS_CURRENCY,
Sysdate DATE_LAST_MODIFIED,
Sysdate DATE_CREATION
FROM
BILL_FEE_TBL' || V_DB_Link || ' BT,
CARD_MASTER' || V_DB_Link || ' CD,
ADJUST_TB' || V_DB_Link || ' AT1,
BANKAC_TB' || V_DB_Link || ' BA,
(select Distinct CARD_NO,substr(T3.acc_no,4,7)
Customer_id,T3.acc_no,Account_Name,Vision_OUC from si_tb' || V_DB_Link ||
' T3,Accounts_dly T4
Where T3.acc_no = T4.Account_no
and DEL_FLG is null
and T3.STATUS_FLG =''U''
And T4.Country ='||''''||P_COUNTRY||''''
||' And T4.Le_Book ='||''''||P_LE_BOOK||'''' ||') T3
WHERE
BT.BILL_CARD_NO = CD.CARD_NO AND
BT.BILL_CARD_NO = T3.CARD_NO(+) AND
BT.AUTHID = ''ADJ'' AND
BT.REF_NO = AT1.REFNO AND
CD.GRP_ID=BA.GRP_ID AND
BT.BILL_CARD_NO = AT1.CARD_NO AND
AT1.STATUS_FLG=''T'' AND
trunc(BT.IN_DATE) >
to_date('||''''||G_LastBusinessDateRun ||''''||',''dd-MON-RRRR'') and
trunc(BT.IN_DATE) <= to_date('||''''||G_Current_Business_Date
||''''||',''dd-MON-RRRR'')
and BA.GRP_ID=CD.GRP_ID and
BA.ACC_CATEG =AT1.REMARKS AND
AT1.TXN_TYPE=''CR''
AND BT.TXN_TYPE=''DEP''
AND Substr(BA.ACC_NO,4,5) like ''4%''
Group By
NVL(Customer_id,CD.Cin),
bT.card_no,
BA.ACC_NO,
Substr(BA.acc_no,4,5),
Substr(BA.acc_no,1,3),
txn_ccy');

G_Recs_Processed_Ctr := SQL%ROWCOUNT;

writeLogInfo('AboutRecCount [' ||
TO_CHAR(G_Recs_Processed_Ctr) || '] records were obtained from source
tables - FYI.');

EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE = SQL_TBL_DOES_NOT_EXIST THEN
writeLogInfo('The Source tables CARD_MASTER /
CUSTOMER_MASTER Does not exists/not accessiable !! Aborting
execution.');

RETURN ERRONEOUS_EXIT;
ELSE
writeErrLogInfo('Unhandled Exception raised
trying to populate CONTRACTS_FEED_STG !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

updateVisionFeedControlsRecord('C');

COMMIT;

RETURN SUCCESSFUL_EXIT;

END getcardsFinStgData;

/*#######################################################################
##################################################
Name : finacleSource
Description : Procedure to Call All Extraction
Functions of Finacle Source.
Author : Vision
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NA NA NA
NA NA
NA

#########################################################################
################################################*/

FUNCTION finacleSource(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_ModuleName IN VARCHAR2,P_SourceSystem IN
VARCHAR2, P_DBLink IN VARCHAR2) RETURN NUMBER
AS
retVal Number(1) :=0;

BEGIN

/* Open Log File */


BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

IF P_Country IS NULL THEN


RETURN ERRONEOUS_EXIT;
ELSE
M_Country := P_Country;
END IF;
IF P_Le_Book IS NULL THEN
RETURN ERRONEOUS_EXIT;
Else
M_Le_Book := P_Le_Book;
END IF;
IF P_Schema_Name IS NULL THEN
RETURN ERRONEOUS_EXIT;
ELSE
M_Schema_Name := P_Schema_Name;
END IF;
IF P_LogDirectoryName IS NULL THEN
RETURN ERRONEOUS_EXIT;
ELSE
M_LogDirectoryName := P_LogDirectoryName;
END IF;

IF P_LogFileName IS NULL THEN


RETURN ERRONEOUS_EXIT;
ELSE
M_LogFileName := P_LogFileName;
END IF;
IF P_SourceSystem IS NULL THEN
RETURN ERRONEOUS_EXIT;
ELSE
M_SourceSystem := P_SourceSystem ;
END IF;
IF P_DBLink IS NULL THEN
RETURN ERRONEOUS_EXIT;
ELSE
M_DBLink := P_DBLink;
END IF;

IF P_ModuleName IS NULL THEN


RETURN ERRONEOUS_EXIT;
ELSE
M_ModuleName := P_ModuleName;
END IF;

/* Call Initilize Procedure */


writeLogInfo('Before updateVisionETLStatus!!');

retVal:= updateVisionETLStatus(M_Country,M_Le_Book
,M_SourceSystem,M_DBLink,'I');

/*IF(retVal <> SUCCESSFUL_EXIT) Then


return ERRONEOUS_EXIT;
ROLLBACK;
END IF; */

IF(retVal = 1) Then
return ERRONEOUS_EXIT;
ELSIF retVal = 2 THEN
return 2;
ELSIF retVal = 4 THEN
return 4;
ELSIF retVal = 5 THEN
return 5;
END IF;

writeLogInfo('AFTER updateVisionETLStatus!!');

retVal := initializeControls(M_Country,M_Le_Book
,M_SourceSystem,M_DBLink);

IF(retVal <> SUCCESSFUL_EXIT) Then


return ERRONEOUS_EXIT;
END IF;

writeLogInfo('venkat123!!');
retVal := sourceSystemEODChecks(M_Country
,M_Le_Book,M_SourceSystem,M_DBLink);

IF(retVal = 1) Then
return ERRONEOUS_EXIT;
ELSIF retVal = 2 THEN
return 2;
ELSIF retVal = 4 THEN
return 4;
ELSIF retVal = 5 THEN
return 5;
END IF;

writeLogInfo('Eod Check Completed ');

retVal :=
sourceETDChecks(M_SourceSystem,M_DBLink,M_LogDirectoryName,M_LogFileName)
;

IF(retVal = 1) Then
return ERRONEOUS_EXIT;
ELSIF retVal = 2 THEN
return 3;
END IF;

dbms_output.put_line('sourceETDChecks');

retVal:= getCcyRatesStgData(M_Country,M_Le_Book, M_Schema_Name ,


M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('getCcyRatesStgData Completed');

retVal:= getCustomerStgData(M_Country,M_Le_Book, M_Schema_Name ,


M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('getCustomerStgData Completed');

retVal:= getAccountsStgData(M_Country,M_Le_Book, M_Schema_Name ,


M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('getAccountsStgData Completed');

retVal:= getFinacleLoansStgData(M_Country,M_Le_Book, M_Schema_Name


, M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('getFinacleLoansStgData Completed');

retVal:= getcontractLCStgData(M_Country,M_Le_Book, M_Schema_Name


, M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );
IF(retVal <> SUCCESSFUL_EXIT) Then
ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('getcontractLCStgData Completed');

retVal:= getcontractBGStgData(M_Country,M_Le_Book, M_Schema_Name


, M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('getcontractBGStgData Completed');

retVal:= getcontractBillsStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('getcontractBillsStgData Completed');

retVal:= getcontractTDStgData(M_Country,M_Le_Book, M_Schema_Name


, M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('getcontractTDStgData Completed');

retVal:= getcontractTDSExttgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('getcontractTDSExttgData Completed');

retVal:= getFinAggBalStgData(M_Country,M_Le_Book, M_Schema_Name ,


M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getFinancialStgData(M_Country,M_Le_Book, M_Schema_Name ,


M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getcontractLoansStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('getcontractLoansStgData Completed');

retVal:= getFinacleCollStgData(M_Country,M_Le_Book, M_Schema_Name


, M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('getFinacleCollStgData Completed');

retVal:= getcontractODStgData(M_Country,M_Le_Book, M_Schema_Name


, M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );
IF(retVal <> SUCCESSFUL_EXIT) Then
ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('getcontractODStgData Completed');

retVal:= getcontractTODStgData(M_Country,M_Le_Book, M_Schema_Name


, M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getFinancialTranCntStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getFinacleChargesEnrichStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getFinacleIntAmtEnrichStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;
retVal:= getFinacleLCEnrichStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getFinacleBGEnrichStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getFinacleBillsEnrichStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getFinacMissIntChgEnrhStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getPussMissIntChgEnrhStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;
retVal:= getAccrualEnrhStgData(M_Country,M_Le_Book, M_Schema_Name
, M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getFinacleContPymtStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getFinnacleIntAccrStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getContractExtrasStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('getContractExtrasStgData Completed');
/*
retVal:= getFinacleIntRecPaybleStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('getFinacleIntRecPaybleStgData Completed');
need to remove VENKAT*/
/* Not Req for This system
retVal:= getImtScanStgData(M_Country,M_Le_Book, M_Schema_Name ,
M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;
*/
retVal:= getContractSwiftStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getCustomerExtrasStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getAtmPayoutStgData(M_Country,M_Le_Book, M_Schema_Name ,


M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

/* Not Req for This system


retVal:= getStaffIdStgData(M_Country,M_Le_Book, M_Schema_Name ,
M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;*/

retVal:= getReversalTransStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getReversalDiffTransStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getContSingleScheStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getCrmStgData(M_Country,M_Le_Book, M_Schema_Name ,


M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getUnclearedChqStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getEitIntAmountStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

/* Treasury ETL */

retVal:= getTreasCustStgData(M_Country,M_Le_Book, M_Schema_Name ,


M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getTreasSecContStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getTreasSwapContStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;
retVal:= getTreasCommContStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getTreasFXContStgData(M_Country,M_Le_Book, M_Schema_Name


, M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getTreasDlySecStgData(M_Country,M_Le_Book, M_Schema_Name


, M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getTreasDlyCommStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getTreasDlyFXStgData(M_Country,M_Le_Book, M_Schema_Name


, M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getDpdCntStgData(M_Country,M_Le_Book, M_Schema_Name ,


M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );
IF(retVal <> SUCCESSFUL_EXIT) Then
ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= updateVisionETLStatus(M_Country,M_Le_Book
,M_SourceSystem,M_DBLink,'C');

IF(retVal <> SUCCESSFUL_EXIT) Then


return ERRONEOUS_EXIT;
ROLLBACK;
END IF;

retVal := updateVisionBusinessDate(M_Country,M_Le_Book );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('updateVisionBusinessDate Updation
Completed');

/*retVal := spawnBuilds(M_Country, M_Le_Book,M_LogDirectoryName


, M_LogFileName);*/
retVal := spawnBuilds(M_Country, M_Le_Book,
G_Current_Business_Date);

IF(retVal <> SUCCESSFUL_EXIT) Then


return ERRONEOUS_EXIT;
ROLLBACK;
END IF;

retVal:= updateParentModule(M_ModuleName,'C');

IF(retVal <> SUCCESSFUL_EXIT) Then


return ERRONEOUS_EXIT;
ROLLBACK;
END IF;

/* Treasury ETL End */

COMMIT;

--closeLogFile;

return SUCCESSFUL_EXIT;

END finacleSource;
/*#######################################################################
##################################################
Name : treasurySource
Description : Procedure to Call All Extraction
Functions of Treasury Source.
Author : Vision
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NA NA NA
NA NA
NA

#########################################################################
################################################*/

FUNCTION treasurySource(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_ModuleName IN VARCHAR2,P_SourceSystem IN
VARCHAR2, P_DBLink IN VARCHAR2) RETURN NUMBER
AS
retVal Number(1) :=0;

BEGIN

/* Open Log File */

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

IF P_Country IS NULL THEN


RETURN ERRONEOUS_EXIT;
ELSE
M_Country := P_Country;
END IF;
IF P_Le_Book IS NULL THEN
RETURN ERRONEOUS_EXIT;
Else
M_Le_Book := P_Le_Book;
END IF;
IF P_Schema_Name IS NULL THEN
RETURN ERRONEOUS_EXIT;
ELSE
M_Schema_Name := P_Schema_Name;
END IF;
IF P_LogDirectoryName IS NULL THEN
RETURN ERRONEOUS_EXIT;
ELSE
M_LogDirectoryName := P_LogDirectoryName;
END IF;

IF P_LogFileName IS NULL THEN


RETURN ERRONEOUS_EXIT;
ELSE
M_LogFileName := P_LogFileName;
END IF;
IF P_SourceSystem IS NULL THEN
RETURN ERRONEOUS_EXIT;
ELSE
M_SourceSystem := P_SourceSystem ;
END IF;
IF P_DBLink IS NULL THEN
RETURN ERRONEOUS_EXIT;
ELSE
M_DBLink := P_DBLink;
END IF;

IF P_ModuleName IS NULL THEN


RETURN ERRONEOUS_EXIT;
ELSE
M_ModuleName := P_ModuleName;
END IF;

/* Call Initilize Procedure */

retVal:= updateVisionETLStatus(M_Country,M_Le_Book
,M_SourceSystem,M_DBLink,'I');

IF(retVal <> SUCCESSFUL_EXIT) Then


return ERRONEOUS_EXIT;
ROLLBACK;
END IF;

/* retVal:= getTreasCustStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );
IF(retVal <> SUCCESSFUL_EXIT) Then
ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getTreasSecContStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getTreasSwapContStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getTreasCommContStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getTreasFXContStgData(M_Country,M_Le_Book, M_Schema_Name


, M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getTreasDlySecStgData(M_Country,M_Le_Book, M_Schema_Name


, M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );
IF(retVal <> SUCCESSFUL_EXIT) Then
ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getTreasDlyCommStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getTreasDlyFXStgData(M_Country,M_Le_Book, M_Schema_Name


, M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= updateVisionETLStatus(M_Country,M_Le_Book
,M_SourceSystem,M_DBLink,'C');

IF(retVal <> SUCCESSFUL_EXIT) Then


return ERRONEOUS_EXIT;
ROLLBACK;
END IF;

retVal := updateVisionBusinessDate(M_Country,M_Le_Book );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('updateVisionBusinessDate Updation
Completed');

retVal := spawnBuilds(M_Country, M_Le_Book,M_LogDirectoryName ,


M_LogFileName);
retVal := spawnBuilds(M_Country, M_Le_Book,
G_Current_Business_Date);

IF(retVal <> SUCCESSFUL_EXIT) Then


return ERRONEOUS_EXIT;
ROLLBACK;
END IF;

retVal:= updateParentModule(M_ModuleName,'C');

IF(retVal <> SUCCESSFUL_EXIT) Then


return ERRONEOUS_EXIT;
ROLLBACK;
END IF;
*/
COMMIT;

return SUCCESSFUL_EXIT;

END treasurySource;

/*#######################################################################
##################################################
Name : CardsSource
Description : Procedure to Call All Extraction
Functions of Cards Source.
Author : Vision
Calling Script :
Assumptions : None

Input Values : NA

Output Values : NA

Return Values : 0 - Successful_Exit


1 - Erroneous_Exit

Table Name Query Insert Update


Delete/Trunc Create/Drop

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NA NA NA
NA NA
NA

#########################################################################
################################################*/

FUNCTION CardsSource(P_Country IN VARCHAR2, P_Le_Book IN


VARCHAR2, P_Schema_Name IN VARCHAR2, P_LogDirectoryName IN VARCHAR2,
P_LogFileName IN VARCHAR2, P_ModuleName IN VARCHAR2,P_SourceSystem IN
VARCHAR2, P_DBLink IN VARCHAR2) RETURN NUMBER
AS
retVal Number(1) :=0;
BEGIN

BEGIN
retVal := openLogFile(P_LogDirectoryName, P_LogFileName);
IF retVal = 1
THEN
dbms_output.put_line('Error opening log file for
writing !!');
RETURN ERRONEOUS_EXIT;
END IF;
END;

IF P_Country IS NULL THEN


RETURN ERRONEOUS_EXIT;
ELSE
M_Country := P_Country;
END IF;
IF P_Le_Book IS NULL THEN
RETURN ERRONEOUS_EXIT;
Else
M_Le_Book := P_Le_Book;
END IF;
IF P_Schema_Name IS NULL THEN
RETURN ERRONEOUS_EXIT;
ELSE
M_Schema_Name := P_Schema_Name;
END IF;
IF P_LogDirectoryName IS NULL THEN
RETURN ERRONEOUS_EXIT;
ELSE
M_LogDirectoryName := P_LogDirectoryName;
END IF;

IF P_LogFileName IS NULL THEN


RETURN ERRONEOUS_EXIT;
ELSE
M_LogFileName := P_LogFileName;
END IF;
IF P_SourceSystem IS NULL THEN
RETURN ERRONEOUS_EXIT;
ELSE
M_SourceSystem := P_SourceSystem ;
END IF;
IF P_DBLink IS NULL THEN
RETURN ERRONEOUS_EXIT;
ELSE
M_DBLink := P_DBLink;
END IF;

IF P_ModuleName IS NULL THEN


RETURN ERRONEOUS_EXIT;
ELSE
M_ModuleName := P_ModuleName;
END IF;
/* Call Initilize Procedure */

retVal:= updateVisionETLStatus(M_Country,M_Le_Book
,M_SourceSystem,M_DBLink,'I');

IF(retVal <> SUCCESSFUL_EXIT) Then


return ERRONEOUS_EXIT;
ROLLBACK;
END IF;

retVal:= getAtmTransStgData(M_Country,M_Le_Book, M_Schema_Name ,


M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getcardsCustStgData(M_Country,M_Le_Book, M_Schema_Name ,


M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getcardsCustExtrasStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getcardsAcctStgData(M_Country,M_Le_Book, M_Schema_Name ,


M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getcardsContStgData(M_Country,M_Le_Book, M_Schema_Name ,


M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );
IF(retVal <> SUCCESSFUL_EXIT) Then
ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getcardsFinStgData(M_Country,M_Le_Book, M_Schema_Name ,


M_LogDirectoryName , M_LogFileName , M_SourceSystem , M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= getCardContExtrasStgData(M_Country,M_Le_Book,
M_Schema_Name , M_LogDirectoryName , M_LogFileName , M_SourceSystem ,
M_DBLink );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
updateVisionFeedControlsRecord('E');
COMMIT;
return ERRONEOUS_EXIT;
END IF;

retVal:= updateVisionETLStatus(M_Country,M_Le_Book
,M_SourceSystem,M_DBLink,'C');

IF(retVal <> SUCCESSFUL_EXIT) Then


return ERRONEOUS_EXIT;
ROLLBACK;
END IF;

/* Credit Card Extraction End */

dbms_output.put_line('updateVisionETLStatus Updation Completed');

retVal := updateVisionBusinessDate(M_Country,M_Le_Book );

IF(retVal <> SUCCESSFUL_EXIT) Then


ROLLBACK;
return ERRONEOUS_EXIT;
END IF;

dbms_output.put_line('updateVisionBusinessDate Updation
Completed');

/*retVal := spawnBuilds(M_Country, M_Le_Book,M_LogDirectoryName


, M_LogFileName);*/
retVal := spawnBuilds(M_Country, M_Le_Book,
G_Current_Business_Date);

IF(retVal <> SUCCESSFUL_EXIT) Then


return ERRONEOUS_EXIT;
ROLLBACK;
END IF;

dbms_output.put_line('spawnBuilds Completed');

retVal:= updateParentModule(M_ModuleName,'C');

IF(retVal <> SUCCESSFUL_EXIT) Then


return ERRONEOUS_EXIT;
ROLLBACK;
END IF;

COMMIT;

closeLogFile;

return SUCCESSFUL_EXIT;

END CardsSource;

END Visiondailyextractions;
/

S-ar putea să vă placă și