<--start
trace on

sv_u = urhk_B2k_PrintRepos("BANCS")
sv_p=BANCS.OUTPUT.DccId
print(sv_p)
#------------------------------------------------------------------------------
# Deleting classes and repositories
#------------------------------------------------------------------------------

IF (REPEXISTS("CUST") == 1) THEN
#{
        IF (CLASSEXISTS("CUST", "DATA") == 1) THEN
        #{
                DELETECLASS("CUST", "DATA")
        #}
        ENDIF
        DELETEREP("CUST")
#}
ENDIF

#------------------------------------------------------------------------------
# Creating classes and repositories
#------------------------------------------------------------------------------
IF (REPEXISTS("CUST") == 0) THEN
#{
        CREATEREP("CUST")
#}
ENDIF

IF (CLASSEXISTS("CUST", "DATA") == 0) THEN
#{
        CREATECLASS("CUST", "DATA", 5)
#}
ENDIF

IF (BANCS.OUTPUT.DccId == "SIM") THEN
#{
        #IF (BANCS.INPUT.Command == "CDNS") THEN
		IF((BANCS.INPUT.Command == "CDNS") OR (BANCS.INPUT.Command == "CNRS") OR (BANCS.INPUT.Command == "TRTS") OR (BANCS.INPUT.Command == "TRRS"))  THEN
        #{
                CUST.DATA.SIMBANKAMOUNT = CDOUBLE(BANCS.INPUT.TranAmt)/100
                PRINT(CUST.DATA.SIMBANKAMOUNT)
                #sv_a = "SIMTXNCOUNT|SELECT COUNT(*) FROM TBAADM.DTD WHERE PART_TRAN_TYPE='C' AND TRAN_AMT='"+CUST.DATA.SIMBANKAMOUNT+"' AND REF_NUM='"+BANCS.INPUT.SerialNum+"' AND ACID IN (SELECT ACID FROM TBAADM.GAM WHERE FORACID='"+BANCS.INPUT.CrForacid+"')"
                sv_a = "SIMTXNCOUNT|SELECT COUNT(*) FROM TBAADM.DTD WHERE PART_TRAN_TYPE='C' AND TRAN_AMT='"+CUST.DATA.SIMBANKAMOUNT+"' AND ACID IN (SELECT ACID FROM TBAADM.GAM WHERE FORACID='"+BANCS.OUTPUT.Foracid+"')"
                PRINT(sv_a)
                sv_b = urhk_dbSelectWithBind(sv_a)
                PRINT(sv_b)

                IF (sv_b == 0) THEN
                #{
                        CUST.DATA.SIMTXNCOUNT = BANCS.OUTPARAM.SIMTXNCOUNT
                        PRINT(CUST.DATA.SIMTXNCOUNT)

                #}
                ELSE
                #{
                        CUST.DATA.SIMTXNCOUNT = ""
                        PRINT(CUST.DATA.SIMTXNCOUNT)
                #}
                ENDIF

                IF (CUST.DATA.SIMTXNCOUNT > 0) THEN
                #{
                        CUST.DATA.Command   = BANCS.INPUT.Command
            CUST.DATA.CrForacid = BANCS.INPUT.CrForacid
            CUST.DATA.TranAmt   = BANCS.INPUT.TranAmt
            CUST.DATA.TranCrncy = BANCS.INPUT.TranCrncy
            CUST.DATA.DeviceId  = BANCS.INPUT.DeviceId
            CUST.DATA.InsmntDetails  = BANCS.INPUT.InsmntDetails
            CUST.DATA.CrSolId       = BANCS.OUTPUT.CrSolId
            CUST.DATA.CrBankCode    = BANCS.OUTPUT.CrBankCode
            CUST.DATA.ReservedField2 = BANCS.INPUT.ReservedField2

                        print(CUST.DATA.Command)
            print(CUST.DATA.CrForacid)
            print(CUST.DATA.TranAmt)
            print(CUST.DATA.TranCrncy)
            print(CUST.DATA.DeviceId)
            print(CUST.DATA.InsmntDetails)
            print(CUST.DATA.CrSolId)
            print(CUST.DATA.CrBankCode)

                        sv_r = urhk_getFileLocation("EXE|babx4061")

                        IF (sv_r==0) THEN
                        #{
                                #sv_e = system("babx4061 $B2K_SESSION_ID  Cash_deposit_tran_reversal.scr " + CUST.DATA.CrForacid + " " + CUST.DATA.TranAmt +" " + CUST.DATA.TranCrncy + " " + CUST.DATA.DeviceId + " " + CUST.DATA.ReservedField2 + "0")
                                #PRINT(sv_e)
                                CALL("Cash_deposit_tran_reversal.scr")
                        #}
                        ENDIF

                #}
                ENDIF

        #}
        ENDIF

#}
ENDIF

IF ((BANCS.OUTPUT.DccId == "BWY") AND (STRLEN(BANCS.INPUT.Foracid)=="10")) THEN
#{
        IF (BANCS.OUTPUT.TranId != "") THEN
        #{
                #IF (BANCS.OUTPUT.CrForacid == "0002310000125") THEN
                #{
                        BANCS.OUTPUT.ReservedField2 = BANCS.OUTPUT.TranId
                        PRINT(BANCS.OUTPUT.ReservedField2)
                #}
                #ENDIF
        #}
        ENDIF

#}
ENDIF

IF (BANCS.OUTPUT.DccId == "MBL") THEN
        BANCS.OUTPUT.ReservedField1 = BANCS.OUTPUT.ReservedField1 + "+" + BANCS.OUTPUT.TranId
        print(BANCS.OUTPUT.ReservedField1)
ENDIF

IF (BANCS.OUTPUT.DccId == "MBR") THEN
#{
        IF (BANCS.INPUT.Command != "FSIS") THEN
        #{
                BANCS.INPUT.AcqBankCode = LTRIM(BANCS.OUTPUT.TranId)+ "|" +MID$(BANCS.OUTPUT.TranDate,0,10)
                PRINT(BANCS.INPUT.AcqBankCode)
                BANCS.OUTPUT.ReservedField3 = BANCS.INPUT.AcqBankCode
                PRINT(BANCS.OUTPUT.ReservedField3)
        #}
        ENDIF

#}
ENDIF

IF (BANCS.INPUT.DccId == "EFT") THEN

#- Sequence Generateion code for Feild 038

        sv_s = "seq|select lpad(SYSTEM.SEQ_ATMAPPRCODE.nextval,'6','0') from dual"
        print(sv_s)
        sv_u = urhk_dbSelectWithBind(sv_s)
        IF (sv_u == 0) THEN
                sv_d = BANCS.OUTPARAM.seq
                BANCS.OUTPUT.ReservedField2 = BANCS.OUTPUT.ReservedField2 +"|"+ sv_d
                print(BANCS.OUTPUT.ReservedField2)
        ENDIF

        IF ((BANCS.INPUT.Command == "CWDS") OR (BANCS.INPUT.Command == "CWRS")) THEN
                IF (BANCS.OUTPUT.RespCode == "00") THEN
                        #call("CDISOFees.scr")
                ENDIF
        ENDIF
ENDIF

IF (BANCS.INPUT.DccId == "MBL") THEN
IF (BANCS.INPUT.Command == "MSCS") THEN

BANCS.STDIN.MesgLen             =       BANCS.INPUT.MesgLen
BANCS.STDIN.HashKey             =       BANCS.INPUT.HashKey
BANCS.STDIN.Version             =       BANCS.INPUT.Version
BANCS.STDIN.Command             =       BANCS.INPUT.Command
BANCS.STDIN.CustCardId          =       BANCS.INPUT.CustCardId
BANCS.STDIN.SysDateTime         =       BANCS.INPUT.SysDateTime
BANCS.STDIN.DccId               =       BANCS.INPUT.DccId
BANCS.STDIN.SerialNum           =       BANCS.INPUT.SerialNum
BANCS.STDIN.Qualifier           =       BANCS.INPUT.Qualifier
BANCS.STDIN.BusDate             =       BANCS.INPUT.BusDate
BANCS.STDIN.AcqBankCode         =       BANCS.INPUT.AcqBankCode
BANCS.STDIN.CntrlDcId           =       BANCS.INPUT.CntrlDcId
BANCS.STDIN.DestIbr             =       BANCS.INPUT.DestIbr
BANCS.STDIN.Foracid             =       BANCS.INPUT.Foracid
BANCS.STDIN.BankCode            =       BANCS.INPUT.BankCode
BANCS.STDIN.SolId               =       BANCS.INPUT.SolId
BANCS.STDIN.CrForacid           =       BANCS.INPUT.CrForacid
BANCS.STDIN.CrBankCode          =       BANCS.INPUT.CrBankCode
BANCS.STDIN.CrSolId             =       BANCS.INPUT.CrSolId
BANCS.STDIN.TranAmt             =       BANCS.INPUT.TranAmt
BANCS.STDIN.TranCrncy           =       BANCS.INPUT.TranCrncy
BANCS.STDIN.Fee                 =       BANCS.INPUT.Fee
BANCS.STDIN.OrigDataElements    =       BANCS.INPUT.OrigDataElements
BANCS.STDIN.OrigTranAmt         =       BANCS.INPUT.OrigTranAmt
BANCS.STDIN.OrigFee             =       BANCS.INPUT.OrigFee
BANCS.STDIN.RespCode            =       BANCS.INPUT.RespCode
BANCS.STDIN.AddRespData         =       BANCS.INPUT.AddRespData
BANCS.STDIN.AvailBal            =       BANCS.INPUT.AvailBal
BANCS.STDIN.LedgBal             =       BANCS.INPUT.LedgBal
BANCS.STDIN.FloatBal            =       BANCS.INPUT.FloatBal
BANCS.STDIN.FfdBal              =       BANCS.INPUT.FfdBal
BANCS.STDIN.UserDefBal          =       BANCS.INPUT.UserDefBal
BANCS.STDIN.BalCrncy            =       BANCS.INPUT.BalCrncy
BANCS.STDIN.StmntData           =       BANCS.INPUT.StmntData
BANCS.STDIN.InsmntDetails       =       BANCS.INPUT.InsmntDetails
BANCS.STDIN.ChqSts              =       BANCS.INPUT.ChqSts
BANCS.STDIN.VendorId            =       BANCS.INPUT.VendorId
BANCS.STDIN.DevType             =       BANCS.INPUT.DevType
BANCS.STDIN.DeviceId            =       BANCS.INPUT.DeviceId
BANCS.STDIN.DevOwnerId          =       BANCS.INPUT.DevOwnerId
BANCS.STDIN.ConsumerNum         =       BANCS.INPUT.ConsumerNum
BANCS.STDIN.PayeeCode           =       BANCS.INPUT.PayeeCode
BANCS.STDIN.StlmntAmt           =       BANCS.INPUT.StlmntAmt
BANCS.STDIN.StlmntConvRate      =       BANCS.INPUT.StlmntConvRate
BANCS.STDIN.StlmntDate          =       BANCS.INPUT.StlmntDate
BANCS.STDIN.DateOfConv          =       BANCS.INPUT.DateOfConv
BANCS.STDIN.StlmntCrncy         =       BANCS.INPUT.StlmntCrncy
BANCS.STDIN.OrigStlmntAmt       =       BANCS.INPUT.OrigStlmntAmt
BANCS.STDIN.StlmntInstCode      =       BANCS.INPUT.StlmntInstCode
BANCS.STDIN.StlmntFee           =       BANCS.INPUT.StlmntFee
BANCS.STDIN.OrigStlmntFee       =       BANCS.INPUT.OrigStlmntFee
BANCS.STDIN.UserField1          =       BANCS.INPUT.UserField1
BANCS.STDIN.UserField2          =       BANCS.INPUT.UserField2
BANCS.STDIN.TraceFlg            =       BANCS.INPUT.TraceFlg
BANCS.STDIN.TraceDetail         =       BANCS.INPUT.TraceDetail
BANCS.STDIN.ReservedField1      =       BANCS.INPUT.ReservedField1
BANCS.STDIN.ReservedField2      =       BANCS.INPUT.ReservedField2
BANCS.STDIN.ReservedField3      =       BANCS.INPUT.ReservedField3
BANCS.STDIN.CrAvailBal          =       BANCS.INPUT.CrAvailBal
BANCS.STDIN.CrLedgBal           =       BANCS.INPUT.CrLedgBal
BANCS.STDIN.CrFloatBal          =       BANCS.INPUT.CrFloatBal
BANCS.STDIN.CrFfdBal            =       BANCS.INPUT.CrFfdBal
BANCS.STDIN.CrUserDefBal        =       BANCS.INPUT.CrUserDefBal
BANCS.STDIN.CrBalCrncy          =       BANCS.INPUT.CrBalCrncy
BANCS.STDIN.TranInfo            =       BANCS.INPUT.TranInfo
BANCS.STDIN.CardAcceptorName    =       BANCS.INPUT.CardAcceptorName
BANCS.STDIN.DcId                =       BANCS.INPUT.DcId
BANCS.STDIN.AddnlDataRec        =       BANCS.INPUT.AddnlDataRec


BANCS.INPUT.ReservedField1 = BANCS.STDIN.RFld1
BANCS.INPUT.ReservedField2 = BANCS.STDIN.RFld2
BANCS.INPUT.ReservedField3 = BANCS.STDIN.RFld3


#-----------------------------------------
# ACH Creation via Mobile Banking
#-----------------------------------------

print(BANCS.INPUT.ReservedField1)

sv_x = BANCS.INPUT.ReservedField1
sv_n = getposition(sv_x, '+')
print(sv_n)
sv_v = MID$(sv_x, 0, sv_n-1)
print(sv_v)
BANCS.STDIN.ORIG_FORACID = sv_v

sv_m = strlen(sv_x)
print(sv_m)
sv_x = MID$(sv_x, sv_n, sv_m)
print(sv_x)
sv_n = getposition(sv_x, '+')
print(sv_n)
sv_v = MID$(sv_x, 0, sv_n-1)
print(sv_v)
BANCS.STDIN.REMIT_AMT = sv_v

sv_m = strlen(sv_x)
print(sv_m)
sv_x = MID$(sv_x, sv_n, sv_m)
print(sv_x)
sv_n = getposition(sv_x, '+')
print(sv_n)
sv_v = MID$(sv_x, 0, sv_n-1)
print(sv_v)
BANCS.STDIN.REMIT_CRNCY = sv_v


sv_m = strlen(sv_x)
print(sv_m)
sv_x = MID$(sv_x, sv_n, sv_m)
print(sv_x)
BANCS.STDIN.BENEF_FORACID = sv_x

print(BANCS.INPUT.ReservedField2)

sv_x = BANCS.INPUT.ReservedField2
sv_n = getposition(sv_x, '+')
print(sv_n)
sv_v = MID$(sv_x, 0, sv_n-1)
print(sv_v)
BANCS.STDIN.AWI_BANK_CODE = sv_v

sv_m = strlen(sv_x)
print(sv_m)
sv_x = MID$(sv_x, sv_n, sv_m)
print(sv_x)
BANCS.STDIN.AWI_BR_CODE = sv_x

print(BANCS.INPUT.ReservedField3)

sv_x = BANCS.INPUT.ReservedField3
sv_n = getposition(sv_x, '+')
print(sv_n)
sv_v = MID$(sv_x, 0, sv_n-1)
print(sv_v)
BANCS.STDIN.BENEF_PARTY_NAME = sv_v

sv_m = strlen(sv_x)
print(sv_m)
sv_x = MID$(sv_x, sv_n, sv_m)
print(sv_x)
BANCS.STDIN.BENEF_ADDRESS1 = sv_x

        call("MobACHReq.scr")





#BANCS.STDIN.languageCode  = "INFENG"
#BANCS.STDIN.userId  = "CDCI"
#BANCS.STDIN.EmployeeId = ""
#BANCS.STDIN.roleId  = "CDCI"
#BANCS.STDIN.EffectiveTenor = "F"
#BANCS.STDIN.onlineOrBatch = "D"
#BANCS.STDIN.userWorkClass  = "999"
#BANCS.STDIN.menuOption  = ""
#BANCS.STDIN.homeCrncyCode  = "KES"
#BANCS.STDIN.homeCrncyAlias  = "00"
#BANCS.STDIN.CurrentBancsVersion  = "10.2.13"
#BANCS.STDIN.myBankCode  = "010"
#BANCS.STDIN.myBrCode  = "006"
#BANCS.STDIN.myExtCode  = "00"
#BANCS.STDIN.mySolId  = "006"
#BANCS.STDIN.homeSolId  = "006"
#BANCS.STDIN.exeName  = "ofti"
#BANCS.STDIN.mySolAlias  = "006"
#BANCS.STDIN.mySolDesc  = "KISUMU BRANCH"
#BANCS.STDIN.homeSolAlias  = "006"
#BANCS.STDIN.homeSolDesc  = "KISUMU BRANCH"
#BANCS.STDIN.dcAlias  = "01"
#BANCS.STDIN.contextBankId  = "01"
#BANCS.STDIN.SBString  = "SB"
#BANCS.STDIN.CAString  = "CA"
#BANCS.STDIN.LLString  = "GA"
#BANCS.STDIN.CCString  = "CC"
#BANCS.STDIN.sysDate  = "03-04-2023 17:44:06"
#BANCS.STDIN.BODDate  = "03-04-2023 00:00:00"
#BANCS.STDIN.batchExecutingForDate  = ""
#BANCS.STDIN.termClass  = "BT"
#BANCS.STDIN.moduleIdentity  = "CDCI"
#BANCS.STDIN.localeCode  = "IN"
#BANCS.STDIN.serviceName  = ""
#BANCS.STDIN.TestFlg  = "N"
#BANCS.STDIN.WFflg  = "N"
#BANCS.STDIN.ScriptName  = "CDPostProc.scr"
#BANCS.STDIN.dapiModuleId  = "RF"
#BANCS.INPUT.MesgLen  = "00314"
#BANCS.INPUT.HashKey  = "60390036"
#BANCS.INPUT.Version  = "B102"
#BANCS.INPUT.Command  = "PRCS"
#BANCS.INPUT.CustCardId  = "4167060010476484"
#BANCS.INPUT.SysDateTime  = "20230321182652"
#BANCS.INPUT.DccId  = "CDM"
#BANCS.INPUT.SerialNum  = "308083947354"
#BANCS.INPUT.Qualifier  = "1"
#BANCS.INPUT.BusDate  = "20230321"
#BANCS.INPUT.AcqBankCode  = "458784"
#BANCS.INPUT.CntrlDcId  = ""
#BANCS.INPUT.DestIbr  = "BC"
#BANCS.INPUT.Foracid = "2000135591"
#BANCS.INPUT.BankCode = "01"
#BANCS.INPUT.SolId = "000"
#BANCS.INPUT.CrForacid = ""
#BANCS.INPUT.CrBankCode = ""
#BANCS.INPUT.CrSolId = ""
#BANCS.INPUT.TranAmt = "0000000000040000"
#BANCS.INPUT.TranCrncy = "KES"
#BANCS.INPUT.Fee = ""
#BANCS.INPUT.OrigDataElements = ""
#BANCS.INPUT.OrigTranAmt = ""
#BANCS.INPUT.OrigFee = ""
#BANCS.INPUT.RespCode = "00"
#BANCS.INPUT.AddRespData = ""
#BANCS.INPUT.AvailBal = "+0000000000349565"
#BANCS.INPUT.LedgBal = "+0000000000349565"
#BANCS.INPUT.FloatBal = "+0000000000000000"
#BANCS.INPUT.FfdBal = "+0000000000000000"
#BANCS.INPUT.UserDefBal = "+0000000000349565"
#BANCS.INPUT.BalCrncy = "KES"
#BANCS.INPUT.StmntData = ""
#BANCS.INPUT.InsmntDetails = ""
#BANCS.INPUT.ChqSts = ""
#BANCS.INPUT.VendorId = ""
#BANCS.INPUT.DevType = ""
#BANCS.INPUT.DeviceId = "00276540"
#BANCS.INPUT.DevOwnerId = ""
#BANCS.INPUT.ConsumerNum = ""
#BANCS.INPUT.PayeeCode = ""
#BANCS.INPUT.StlmntAmt = "0000000000040000"
#BANCS.INPUT.StlmntConvRate = ""
#BANCS.INPUT.StlmntDate = ""
#BANCS.INPUT.DateOfConv = ""
#BANCS.INPUT.StlmntCrncy = "KES"
#BANCS.INPUT.OrigStlmntAmt = ""
#BANCS.INPUT.StlmntInstCode = ""
#BANCS.INPUT.StlmntFee = ""
#BANCS.INPUT.OrigStlmntFee = ""
#BANCS.INPUT.UserField1 = ""
#BANCS.INPUT.UserField2 = "1680684326.851"
#BANCS.INPUT.TraceFlg = "N"
#BANCS.INPUT.TraceDetail = ""
#BANCS.INPUT.ReservedField1 = "VDVISA000000"
#BANCS.INPUT.ReservedField2 = ""
#BANCS.INPUT.ReservedField3 = ""
#BANCS.INPUT.CrAvailBal = ""
#BANCS.INPUT.CrLedgBal = ""
#BANCS.INPUT.CrFloatBal = ""
#BANCS.INPUT.CrFfdBal = ""
#BANCS.INPUT.CrUserDefBal = ""
#BANCS.INPUT.CrBalCrncy = ""
#BANCS.INPUT.TranInfo = ""
#BANCS.INPUT.CardAcceptorName = "OLA ENERGY            OLA ENERGY               KISUMU                    KE"
#BANCS.INPUT.DcId = "01"
#BANCS.INPUT.AddnlDataRec = ""
#BANCS.OUTPUT.successOrFailure = "S"
#BANCS.OUTPUT.fatalErrorFlg = ""
#BANCS.OUTPUT.fatalErrorMsg = ""
#BANCS.OUTPUT.MesgLen = "00314"
#BANCS.OUTPUT.HashKey = "60390036"
#BANCS.OUTPUT.Version = "B102"
#BANCS.OUTPUT.Command = "PRCS"
#BANCS.OUTPUT.CustCardId = "4167060010476484"
#BANCS.OUTPUT.SysDateTime = "20230321182652"
#BANCS.OUTPUT.DccId = "CDM"
#BANCS.OUTPUT.SerialNum = "308083947354"
#BANCS.OUTPUT.Qualifier = "1"
#BANCS.OUTPUT.BusDate = "20230321"
#BANCS.OUTPUT.AcqBankCode = "458784"
#BANCS.OUTPUT.CntrlDcId = ""
#BANCS.OUTPUT.DestIbr = "BC"
#BANCS.OUTPUT.Foracid = "2000135591"
#BANCS.OUTPUT.BankCode = "01"
#BANCS.OUTPUT.SolId = "000"
#BANCS.OUTPUT.CrForacid = ""
#BANCS.OUTPUT.CrBankCode = ""
#BANCS.OUTPUT.CrSolId = ""
#BANCS.OUTPUT.TranAmt = "0000000000040000"
#BANCS.OUTPUT.TranCrncy = "KES"
#BANCS.OUTPUT.Fee = ""
#BANCS.OUTPUT.OrigDataElements = ""
#BANCS.OUTPUT.OrigTranAmt = ""
#BANCS.OUTPUT.OrigFee = ""
#BANCS.OUTPUT.RespCode = "00"
#BANCS.OUTPUT.AddRespData = ""
#BANCS.OUTPUT.AvailBal = "+0000000000349565"
#BANCS.OUTPUT.LedgBal = "+0000000000349565"
#BANCS.OUTPUT.FloatBal = "+0000000000000000"
#BANCS.OUTPUT.FfdBal = "+0000000000000000"
#BANCS.OUTPUT.UserDefBal = "+0000000000349565"
#BANCS.OUTPUT.BalCrncy = "KES"
#BANCS.OUTPUT.StmntData = ""
#BANCS.OUTPUT.InsmntDetails = ""
#BANCS.OUTPUT.ChqSts = ""
#BANCS.OUTPUT.VendorId = ""
#BANCS.OUTPUT.DevType = ""
#BANCS.OUTPUT.DeviceId = "00276540"
#BANCS.OUTPUT.DevOwnerId = ""
#BANCS.OUTPUT.ConsumerNum = ""
#BANCS.OUTPUT.PayeeCode = ""
#BANCS.OUTPUT.StlmntAmt = "0000000000040000"
#BANCS.OUTPUT.StlmntConvRate = ""
#BANCS.OUTPUT.StlmntDate = ""
#BANCS.OUTPUT.DateOfConv = ""
#BANCS.OUTPUT.StlmntCrncy = "KES"
#BANCS.OUTPUT.OrigStlmntAmt = ""
#BANCS.OUTPUT.StlmntInstCode = ""
#BANCS.OUTPUT.StlmntFee = ""
#BANCS.OUTPUT.OrigStlmntFee = ""
#BANCS.OUTPUT.UserField1 = ""
#BANCS.OUTPUT.UserField2 = "1680684326.851"
#BANCS.OUTPUT.TraceFlg = "N"
#BANCS.OUTPUT.TraceDetail = ""
#BANCS.OUTPUT.ReservedField1 = "VDVISA000000"
#BANCS.OUTPUT.ReservedField2 = ""
#BANCS.OUTPUT.ReservedField3 = ""
#BANCS.OUTPUT.CrAvailBal = ""
#BANCS.OUTPUT.CrLedgBal = ""
#BANCS.OUTPUT.CrFloatBal = ""
#BANCS.OUTPUT.CrFfdBal = ""
#BANCS.OUTPUT.CrUserDefBal = ""
#BANCS.OUTPUT.CrBalCrncy = ""
#BANCS.OUTPUT.TranInfo = ""
#BANCS.OUTPUT.CardAcceptorName = "OLA ENERGY            OLA ENERGY               KISUMU                    KE"
#BANCS.OUTPUT.DcId = "01"
#BANCS.OUTPUT.AddnlDataRec = ""
#BANCS.OUTPUT.TranDate = "03-04-2023 00:00:00"
#BANCS.OUTPUT.TranId = "S16494388"




BANCS.OUTPUT.MesgLen            =       BANCS.STDIN.MesgLen
BANCS.OUTPUT.HashKey            =       BANCS.STDIN.HashKey
BANCS.OUTPUT.Version            =       BANCS.STDIN.Version
BANCS.OUTPUT.Command            =       BANCS.STDIN.Command
BANCS.OUTPUT.CustCardId         =       BANCS.STDIN.CustCardId
BANCS.OUTPUT.SysDateTime        =       BANCS.STDIN.SysDateTime
BANCS.OUTPUT.DccId              =       BANCS.STDIN.DccId
BANCS.OUTPUT.SerialNum          =       BANCS.STDIN.SerialNum
BANCS.OUTPUT.Qualifier          =       BANCS.STDIN.Qualifier
BANCS.OUTPUT.BusDate            =       BANCS.STDIN.BusDate
BANCS.OUTPUT.AcqBankCode        =       BANCS.STDIN.AcqBankCode
BANCS.OUTPUT.CntrlDcId          =       BANCS.STDIN.CntrlDcId
BANCS.OUTPUT.DestIbr            =       BANCS.STDIN.DestIbr
BANCS.OUTPUT.Foracid            =       BANCS.STDIN.Foracid
BANCS.OUTPUT.BankCode           =       BANCS.STDIN.BankCode
BANCS.OUTPUT.SolId              =       BANCS.STDIN.SolId
BANCS.OUTPUT.CrForacid          =       BANCS.STDIN.CrForacid
BANCS.OUTPUT.CrBankCode         =       BANCS.STDIN.CrBankCode
BANCS.OUTPUT.CrSolId            =       BANCS.STDIN.CrSolId
BANCS.OUTPUT.TranAmt            =       BANCS.STDIN.TranAmt
BANCS.OUTPUT.TranCrncy          =       BANCS.STDIN.TranCrncy
BANCS.OUTPUT.Fee                =       BANCS.STDIN.Fee
BANCS.OUTPUT.OrigDataElements   =       BANCS.STDIN.OrigDataElements
BANCS.OUTPUT.OrigTranAmt        =       BANCS.STDIN.OrigTranAmt
BANCS.OUTPUT.OrigFee            =       BANCS.STDIN.OrigFee
BANCS.OUTPUT.RespCode           =       BANCS.STDIN.RespCode
BANCS.OUTPUT.AddRespData        =       BANCS.STDIN.AddRespData
BANCS.OUTPUT.AvailBal           =       BANCS.STDIN.AvailBal
BANCS.OUTPUT.LedgBal            =       BANCS.STDIN.LedgBal
BANCS.OUTPUT.FloatBal           =       BANCS.STDIN.FloatBal
BANCS.OUTPUT.FfdBal             =       BANCS.STDIN.FfdBal
BANCS.OUTPUT.UserDefBal         =       BANCS.STDIN.UserDefBal
BANCS.OUTPUT.BalCrncy           =       BANCS.STDIN.BalCrncy
BANCS.OUTPUT.StmntData          =       BANCS.STDIN.StmntData
BANCS.OUTPUT.InsmntDetails      =       BANCS.STDIN.InsmntDetails
BANCS.OUTPUT.ChqSts             =       BANCS.STDIN.ChqSts
BANCS.OUTPUT.VendorId           =       BANCS.STDIN.VendorId
BANCS.OUTPUT.DevType            =       BANCS.STDIN.DevType
BANCS.OUTPUT.DeviceId           =       BANCS.STDIN.DeviceId
BANCS.OUTPUT.DevOwnerId         =       BANCS.STDIN.DevOwnerId
BANCS.OUTPUT.ConsumerNum        =       BANCS.STDIN.ConsumerNum
BANCS.OUTPUT.PayeeCode          =       BANCS.STDIN.PayeeCode
BANCS.OUTPUT.StlmntAmt          =       BANCS.STDIN.StlmntAmt
BANCS.OUTPUT.StlmntConvRate     =       BANCS.STDIN.StlmntConvRate
BANCS.OUTPUT.StlmntDate         =       BANCS.STDIN.StlmntDate
BANCS.OUTPUT.DateOfConv         =       BANCS.STDIN.DateOfConv
BANCS.OUTPUT.StlmntCrncy        =       BANCS.STDIN.StlmntCrncy
BANCS.OUTPUT.OrigStlmntAmt      =       BANCS.STDIN.OrigStlmntAmt
BANCS.OUTPUT.StlmntInstCode     =       BANCS.STDIN.StlmntInstCode
BANCS.OUTPUT.StlmntFee          =       BANCS.STDIN.StlmntFee
BANCS.OUTPUT.OrigStlmntFee      =       BANCS.STDIN.OrigStlmntFee
BANCS.OUTPUT.UserField1         =       BANCS.STDIN.UserField1
BANCS.OUTPUT.UserField2         =       BANCS.STDIN.UserField2
BANCS.OUTPUT.TraceFlg           =       BANCS.STDIN.TraceFlg
BANCS.OUTPUT.TraceDetail        =       BANCS.STDIN.TraceDetail
BANCS.OUTPUT.ReservedField1     =       BANCS.STDIN.ReservedField1
BANCS.OUTPUT.ReservedField2     =       BANCS.STDIN.ReservedField2
BANCS.OUTPUT.ReservedField3     =       BANCS.STDIN.ReservedField3
BANCS.OUTPUT.CrAvailBal         =       BANCS.STDIN.CrAvailBal
BANCS.OUTPUT.CrLedgBal          =       BANCS.STDIN.CrLedgBal
BANCS.OUTPUT.CrFloatBal         =       BANCS.STDIN.CrFloatBal
BANCS.OUTPUT.CrFfdBal           =       BANCS.STDIN.CrFfdBal
BANCS.OUTPUT.CrUserDefBal       =       BANCS.STDIN.CrUserDefBal
BANCS.OUTPUT.CrBalCrncy         =       BANCS.STDIN.CrBalCrncy
BANCS.OUTPUT.TranInfo           =       BANCS.STDIN.TranInfo
BANCS.OUTPUT.CardAcceptorName   =       BANCS.STDIN.CardAcceptorName
BANCS.OUTPUT.DcId               =       BANCS.STDIN.DcId
BANCS.OUTPUT.AddnlDataRec       =       BANCS.STDIN.AddnlDataRec

exitscript

ENDIF
ENDIF

#----------------------------Customization by SagarSe7en to include Balances to 0 For Non Financial Visa Mandate Transactions.---------------------------#
IF (BANCS.INPUT.DccId == "EFT") THEN
#{

        IF (BANCS.INPUT.Command == "BLIS") THEN
        #{
                IF (BANCS.INPUT.ReservedField2 == "VISAVISA-2400000") THEN
                #{
                        IF (BANCS.INPUT.ReservedField1 == "VDVISA000000") THEN
                        #{
                                BANCS.OUTPUT.AvailBal = 0
                                print(BANCS.OUTPUT.AvailBal)
                                BANCS.OUTPUT.LedgBal = 0
                                print(BANCS.OUTPUT.LedgBal)
                                BANCS.OUTPUT.UserDefBal = 0
                                print(BANCS.OUTPUT.UserDefBal)
                                BANCS.OUTPUT.Command = "VMDT"
                                print(BANCS.OUTPUT.Command)
                        #}
                        ENDIF
                #}
                ENDIF

                IF (BANCS.INPUT.ReservedField1 == "VISAVISA-24000001") THEN
                #{
                        IF (BANCS.INPUT.ReservedField2 == "PTL") THEN
                        #{
                                BANCS.OUTPUT.TranAmt = MID$(BANCS.OUTPUT.AvailBal,1,16)
                                PRINT(BANCS.OUTPUT.TranAmt)
                                BANCS.OUTPUT.ReservedField2 = MID$(BANCS.OUTPUT.AvailBal,1,16)
                                PRINT(BANCS.OUTPUT.ReservedField2)
                                BANCS.OUTPUT.ReservedField3 = "PTL"
                                PRINT(BANCS.OUTPUT.ReservedField3)
                        #}
                        ENDIF
                #}
                ENDIF

        #}
        ENDIF

        IF (BANCS.INPUT.ReservedField2!= "") THEN
        #{
                sv_o = BANCS.INPUT.ReservedField2
                print(sv_o)
        #}
        ELSE
        #{
                sv_o = ""
                print(sv_o)
        #}
        ENDIF
        IF (BANCS.INPUT.DccId == "EFT") THEN
        #{
                IF (BANCS.INPUT.Command == "CWDS") THEN
                #{
                        IF (BANCS.INPUT.ReservedField2 == "CB WITH AUTH") THEN
                        #{
                                IF (BANCS.INPUT.RespCode == "04") THEN
                                #{
                                        sv_a = BANCS.OUTPUT.Foracid
                                        sv_s = "onan_foracid|select NEW_FORACID from tbaadm.casa_od_mappings where OLD_FORACID = '" + BANCS.OUTPUT.Foracid + "' and rownum<2"
                                        print(sv_s)
                                        sv_u = urhk_dbSelectWithBind(sv_s)
                                        print(sv_u)
                                        IF (sv_u == 0) THEN
                                        #{
                                                sv_c = BANCS.OUTPARAM.onan_foracid
                                                print(sv_c)
                                        #}
                                        ELSE
                                        #{
                                                sv_c = sv_a
                                                print(sv_c)
                                        #}
                                        ENDIF
                                        BANCS.OUTPUT.Foracid = sv_c
                                        PRINT(BANCS.OUTPUT.Foracid)
                                        CUST.DATA.Command = BANCS.INPUT.Command
                                        CUST.DATA.Foracid = BANCS.OUTPUT.Foracid
                                        PRINT(BANCS.OUTPUT.ReservedField2)
                                        CUST.DATA.TranAmt = BANCS.OUTPUT.ReservedField1
                                        CUST.DATA.TranCrncy = BANCS.INPUT.TranCrncy
                                        CUST.DATA.CardNum = BANCS.INPUT.CustCardId
                                        CUST.DATA.DeviceId  = BANCS.INPUT.DeviceId
                                        CUST.DATA.InsmntDetails  = BANCS.INPUT.InsmntDetails
                                        CUST.DATA.CrSolId       = BANCS.OUTPUT.CrSolId
                                        CUST.DATA.CrBankCode    = BANCS.OUTPUT.CrBankCode
                                        CUST.DATA.CardAcceptorName = MID$(BANCS.INPUT.CardAcceptorName,0,30)
                                        CUST.DATA.SerialNum = BANCS.INPUT.SerialNum
                                        PRINT(CUST.DATA.Command)
                                        PRINT(CUST.DATA.Foracid)
                                        PRINT(CUST.DATA.TranAmt)
                                        PRINT(CUST.DATA.TranCrncy)
                                        PRINT(CUST.DATA.CardNum)
                                        PRINT(CUST.DATA.DeviceId)
                                        PRINT(CUST.DATA.InsmntDetails)
                                        PRINT(CUST.DATA.CrSolId)
                                        PRINT(CUST.DATA.CrBankCode)
                                        PRINT(CUST.DATA.CardAcceptorName)
                                        PRINT(CUST.DATA.SerialNum)

                                        sv_i = BANCS.OUTPUT.Foracid
                                        PRINT(sv_i)
                                        sv_j = urhk_valAcctNumber(sv_i)
                                        PRINT(sv_j)
                                        IF (sv_j == 0) THEN
                                        #{
                                                        sv_k = urhk_getAcctDetailsInRepository(sv_i)
                                                        PRINT(sv_k)
                                                        PRINT(BANCS.OUTPARAM.EffAvailableAmt)

                                                        CUST.DATA.AvailBal = BANCS.OUTPARAM.EffAvailableAmt
                                                        PRINT(CUST.DATA.AvailBal)
                                                        sv_q = "0000000000000000"
                                                        PRINT(sv_q)
                                                        sv_r = CDOUBLE(sv_q)
                                                        PRINT(sv_r)
                                                        IF (CUST.DATA.AvailBal > sv_r) THEN
                                                        #{
                                                                CUST.DATA.TranAmt = CUST.DATA.AvailBal
                                                                PRINT(CUST.DATA.TranAmt)
                                                                sv_e = system("babx4061 $B2K_SESSION_ID  Partial_Auth_POS_Insufficient_Balance.scr " + BANCS.OUTPUT.Foracid + " " + CUST.DATA.TranAmt +" " + CUST.DATA.CardNum + " " + CUST.DATA.SerialNum + " " + CUST.DATA.CardAcceptorName + " ")
                                                                PRINT(sv_e)
                                                                BANCS.OUTPUT.ReservedField2 = "POS PARTIAL APPROVED"
                                                                PRINT(BANCS.OUTPUT.ReservedField2)
                                                                BANCS.OUTPUT.TranAmt = CDOUBLE(CUST.DATA.TranAmt)
                                                                PRINT(BANCS.OUTPUT.TranAmt)
                                                                sv_z = BANCS.INPUT.ReservedField1
                                                                PRINT(sv_z)
                                                                IF (sv_z != 0) THEN
                                                                #{
                                                                        CUST.DATA.UserField1 = BANCS.OUTPUT.TranAmt
                                                                        PRINT(CUST.DATA.UserField1)
                                                                        sv_w="."
                                                                        PRINT(sv_w)
                                                                        sv_p=GETPOSITION(CUST.DATA.UserField1,sv_w)
                                                                        PRINT(sv_p)
                                                                        sv_r=sv_p-1
                                                                        PRINT(sv_r)
                                                                        CUST.DATA.VAL1=MID$(CUST.DATA.UserField1,0,sv_r)
                                                                        PRINT(CUST.DATA.VAL1)
                                                                        CUST.DATA.VAL1=LTRIM(CUST.DATA.VAL1,'0')
                                                                        PRINT(CUST.DATA.VAL1)
                                                                        CUST.DATA.VAL2=MID$(CUST.DATA.UserField1,sv_p,2)
                                                                        PRINT(CUST.DATA.VAL2)
                                                                        CUST.DATA.VAL3=CUST.DATA.VAL1+CUST.DATA.VAL2
                                                                        PRINT(CUST.DATA.VAL3)
                                                                        CUST.DATA.VAL3=LPAD(CUST.DATA.VAL3,16,'0')
                                                                        PRINT(CUST.DATA.VAL3)
                                                                        BANCS.OUTPUT.TranAmt = CUST.DATA.VAL3
                                                                        PRINT(BANCS.OUTPUT.TranAmt)
                                                                        BANCS.OUTPUT.ReservedField1=CUST.DATA.VAL3
                                                                        PRINT(BANCS.OUTPUT.ReservedField1)
                                                                #}
                                                                ELSE
                                                                        #{
                                                                                BANCS.OUTPUT.ReservedField1=MID$(BANCS.OUTPUT.AvailBal,1,16)
                                                                                PRINT(BANCS.OUTPUT.ReservedField1)
                                                                        #}
                                                                ENDIF


                                                        #}
                                                        ELSE
                                                        #{
                                                                PRINT(BANCS.OUTPUT.TranAmt)
                                                                BANCS.OUTPUT.ReservedField2 = "PCB NO BALANCE"
                                                                PRINT(BANCS.OUTPUT.ReservedField2)
                                                        #}
                                                        ENDIF


                                        #}
                                        ENDIF
                                #}
                                ENDIF


                                IF (BANCS.INPUT.RespCode == "00") THEN
                                #{
                                        sv_a = BANCS.OUTPUT.Foracid
                                        sv_s = "onan_foracid|select NEW_FORACID from tbaadm.casa_od_mappings where OLD_FORACID = '" + BANCS.OUTPUT.Foracid + "' and rownum<2"
                                        print(sv_s)
                                        sv_u = urhk_dbSelectWithBind(sv_s)
                                        print(sv_u)
                                        IF (sv_u == 0) THEN
                                        #{
                                                sv_c = BANCS.OUTPARAM.onan_foracid
                                                print(sv_c)
                                        ELSE
                                        #{
                                                sv_c = sv_a
                                                print(sv_c)
                                        #}
                                        ENDIF
                                        BANCS.OUTPUT.Foracid = sv_c
                                        PRINT(BANCS.OUTPUT.Foracid)
                                        BANCS.OUTPUT.ReservedField1 = "0000"+BANCS.OUTPUT.ReservedField1
                                        PRINT(BANCS.OUTPUT.ReservedField1)
                                        CUST.DATA.Command = BANCS.INPUT.Command
                                        CUST.DATA.Foracid = BANCS.OUTPUT.Foracid
                                        PRINT(BANCS.OUTPUT.ReservedField2)
                                        CUST.DATA.TranAmt = BANCS.OUTPUT.ReservedField1
                                        CUST.DATA.TranCrncy = BANCS.INPUT.TranCrncy
                                        CUST.DATA.CardNum = BANCS.INPUT.CustCardId
                                        CUST.DATA.DeviceId  = BANCS.INPUT.DeviceId
                                        CUST.DATA.InsmntDetails  = BANCS.INPUT.InsmntDetails
                                        CUST.DATA.CrSolId       = BANCS.OUTPUT.CrSolId
                                        CUST.DATA.CrBankCode    = BANCS.OUTPUT.CrBankCode
                                        CUST.DATA.CardAcceptorName = MID$(BANCS.INPUT.CardAcceptorName,0,30)
                                        CUST.DATA.AvailBal = BANCS.OUTPUT.AvailBal
                                        CUST.DATA.SerialNum = BANCS.INPUT.SerialNum
                                        CUST.DATA.CashBackChargeAmount = "0000000000010000"
                                        CUST.DATA.CashBackExciseAmount = "0000000000002000"
                                        CUST.DATA.TotalCashBackAmt = CDOUBLE(BANCS.OUTPUT.ReservedField1)/100+CDOUBLE(CUST.DATA.CashBackChargeAmount)/100+CDOUBLE(CUST.DATA.CashBackExciseAmount)/100
                                        PRINT(CUST.DATA.CashBackChargeAmount)
                                        PRINT(CUST.DATA.CashBackExciseAmount)
                                        PRINT(CUST.DATA.TotalCashBackAmt)
                                        print(CUST.DATA.Command)
                                        print(CUST.DATA.Foracid)
                                        print(CUST.DATA.TranAmt)
                                        print(CUST.DATA.TranCrncy)
                                        print(CUST.DATA.DeviceId)
                                        print(CUST.DATA.InsmntDetails)
                                        print(CUST.DATA.CrSolId)
                                        print(CUST.DATA.CrBankCode)
                                        print(CUST.DATA.CardAcceptorName)
                                        print(CUST.DATA.AvailBal)
                                        PRINT(CUST.DATA.SerialNum)
                                        sv_i = BANCS.OUTPUT.Foracid
                                        PRINT(sv_i)
                                        sv_j = urhk_valAcctNumber(sv_i)
                                        PRINT(sv_j)
                                        IF (sv_j == 0) THEN
                                        #{
                                                sv_k = urhk_getAcctDetailsInRepository(sv_i)
                                                PRINT(sv_k)
                                                PRINT(BANCS.OUTPARAM.EffAvailableAmt)

                                                CUST.DATA.AvailBal = BANCS.OUTPARAM.EffAvailableAmt
                                                PRINT(CUST.DATA.AvailBal)

                                                sv_t = CDOUBLE(CUST.DATA.TotalCashBackAmt)
                                                PRINT(sv_t)
                                                IF (BANCS.INPUT.Command == "CWDS") THEN
                                                #{
                                                        IF (CUST.DATA.AvailBal > sv_t) THEN
                                                        #{
                                                                IF (BANCS.INPUT.ReservedField2 != "") THEN
                                                                #{
                                                                        IF (BANCS.INPUT.ReservedField1 != "VDVISA000000") THEN
                                                                        #{
                                                                                sv_e = system("babx4061 $B2K_SESSION_ID  Partial_Auth_CashBack.scr " + CUST.DATA.Foracid + " " + CUST.DATA.TranAmt +" " + CUST.DATA.CardNum + " " + CUST.DATA.SerialNum + " " + CUST.DATA.CardAcceptorName + " ")
                                                                                PRINT(sv_e)
                                                                                BANCS.OUTPUT.RespCode = "00"
                                                                                PRINT(BANCS.OUTPUT.RespCode)
                                                                                BANCS.OUTPUT.ReservedField2 = "PCB FULLY APPROVED"
                                                                                PRINT(BANCS.OUTPUT.ReservedField2)
                                                                        #}
                                                                        ENDIF
                                                                #}
                                                                ENDIF
                                                        #}
                                                        ELSE
                                                        #{
                                                                BANCS.OUTPUT.RespCode = "116"
                                                                BANCS.OUTPUT.ReservedField2 = "PCB PARTIAL APPROVED"
                                                                PRINT(BANCS.OUTPUT.RespCode)
                                                                PRINT(BANCS.OUTPUT.ReservedField2)
                                                                BANCS.OUTPUT.TranAmt = CDOUBLE(BANCS.INPUT.TranAmt)/100-CDOUBLE(BANCS.OUTPUT.ReservedField1)/100
                                                                PRINT(BANCS.OUTPUT.TranAmt)
                                                                sv_z = BANCS.INPUT.ReservedField1
                                                                PRINT(sv_z)
                                                                IF (sv_z != 0) THEN
                                                                #{
                                                                        CUST.DATA.UserField1 = BANCS.OUTPUT.TranAmt
                                                                        PRINT(CUST.DATA.UserField1)
                                                                        sv_w="."
                                                                        PRINT(sv_w)
                                                                        sv_p=GETPOSITION(CUST.DATA.UserField1,sv_w)
                                                                        PRINT(sv_p)
                                                                        sv_r=sv_p-1
                                                                        PRINT(sv_r)
                                                                        CUST.DATA.VAL1=MID$(CUST.DATA.UserField1,0,sv_r)
                                                                        PRINT(CUST.DATA.VAL1)
                                                                        CUST.DATA.VAL1=LTRIM(CUST.DATA.VAL1,'0')
                                                                        PRINT(CUST.DATA.VAL1)
                                                                        CUST.DATA.VAL2=MID$(CUST.DATA.UserField1,sv_p,2)
                                                                        PRINT(CUST.DATA.VAL2)
                                                                        CUST.DATA.VAL3=CUST.DATA.VAL1+CUST.DATA.VAL2
                                                                        PRINT(CUST.DATA.VAL3)
                                                                        CUST.DATA.VAL3=LPAD(CUST.DATA.VAL3,16,'0')
                                                                        PRINT(CUST.DATA.VAL3)
                                                                        BANCS.OUTPUT.TranAmt = CUST.DATA.VAL3
                                                                        PRINT(BANCS.OUTPUT.TranAmt)
                                                                        BANCS.OUTPUT.ReservedField1=CUST.DATA.VAL3
                                                                        PRINT(BANCS.OUTPUT.ReservedField1)
                                                                #}
                                                                ENDIF
                                                        #}
                                                        ENDIF
                                                #}
                                                ENDIF

                                        #}
                                        ENDIF
                                #}
                                ENDIF

                        #}
                        ENDIF

                        IF (BANCS.INPUT.ReservedField2 == "CB NO AUTH") THEN
                        #{
                                IF (BANCS.INPUT.RespCode == "00") THEN
                                #{
                                        sv_a = BANCS.OUTPUT.Foracid
                                        sv_s = "onan_foracid|select NEW_FORACID from tbaadm.casa_od_mappings where OLD_FORACID = '" + BANCS.OUTPUT.Foracid + "' and rownum<2"
                                        print(sv_s)
                                        sv_u = urhk_dbSelectWithBind(sv_s)
                                        print(sv_u)
                                        IF (sv_u == 0) THEN
                                        #{
                                                sv_c = BANCS.OUTPARAM.onan_foracid
                                                print(sv_c)
                                        ELSE
                                        #{
                                                sv_c = sv_a
                                                print(sv_c)
                                        #}
                                        ENDIF
                                        BANCS.OUTPUT.Foracid = sv_c
                                        PRINT(BANCS.OUTPUT.Foracid)
                                        BANCS.OUTPUT.ReservedField1 = "0000"+BANCS.OUTPUT.ReservedField1
                                        PRINT(BANCS.OUTPUT.ReservedField1)
                                        CUST.DATA.Command = BANCS.INPUT.Command
                                        CUST.DATA.Foracid = BANCS.OUTPUT.Foracid
                                        PRINT(BANCS.OUTPUT.ReservedField2)
                                        CUST.DATA.TranAmt = BANCS.OUTPUT.ReservedField1
                                        CUST.DATA.TranCrncy = BANCS.INPUT.TranCrncy
                                        CUST.DATA.CardNum = BANCS.INPUT.CustCardId
                                        CUST.DATA.DeviceId  = BANCS.INPUT.DeviceId
                                        CUST.DATA.InsmntDetails  = BANCS.INPUT.InsmntDetails
                                        CUST.DATA.CrSolId       = BANCS.OUTPUT.CrSolId
                                        CUST.DATA.CrBankCode    = BANCS.OUTPUT.CrBankCode
                                        CUST.DATA.CardAcceptorName = MID$(BANCS.INPUT.CardAcceptorName,0,30)
                                        CUST.DATA.AvailBal = BANCS.OUTPUT.AvailBal
                                        CUST.DATA.SerialNum = BANCS.INPUT.SerialNum
                                        CUST.DATA.CashBackChargeAmount = "0000000000010000"
                                        CUST.DATA.CashBackExciseAmount = "0000000000002000"
                                        CUST.DATA.TotalCashBackAmt = CDOUBLE(BANCS.OUTPUT.ReservedField1)/100+CDOUBLE(CUST.DATA.CashBackChargeAmount)/100+CDOUBLE(CUST.DATA.CashBackExciseAmount)/100
                                        PRINT(CUST.DATA.CashBackChargeAmount)
                                        PRINT(CUST.DATA.CashBackExciseAmount)
                                        PRINT(CUST.DATA.TotalCashBackAmt)
                                        print(CUST.DATA.Command)
                                        print(CUST.DATA.Foracid)
                                        print(CUST.DATA.TranAmt)
                                        print(CUST.DATA.TranCrncy)
                                        print(CUST.DATA.DeviceId)
                                        print(CUST.DATA.InsmntDetails)
                                        print(CUST.DATA.CrSolId)
                                        print(CUST.DATA.CrBankCode)
                                        print(CUST.DATA.CardAcceptorName)
                                        print(CUST.DATA.AvailBal)
                                        PRINT(CUST.DATA.SerialNum)
                                        sv_i = BANCS.OUTPUT.Foracid
                                        PRINT(sv_i)
                                        sv_j = urhk_valAcctNumber(sv_i)
                                        PRINT(sv_j)
                                        IF (sv_j == 0) THEN
                                        #{
                                                IF (BANCS.INPUT.ReservedField2 != "") THEN
                                                #{
                                                        IF (BANCS.INPUT.ReservedField1 != "VDVISA000000") THEN
                                                        #{
                                                                sv_k = urhk_getAcctDetailsInRepository(sv_i)
                                                                PRINT(sv_k)
                                                                PRINT(BANCS.OUTPARAM.EffAvailableAmt)
                                                                sv_e = system("babx4061 $B2K_SESSION_ID  Non_Partial_Auth_CashBack.scr " + CUST.DATA.Foracid + " " + CUST.DATA.TranAmt +" " + CUST.DATA.CardNum + " " + CUST.DATA.SerialNum + " " + CUST.DATA.CardAcceptorName + " ")
                                                                PRINT(sv_e)
                                                                BANCS.OUTPUT.RespCode = "00"
                                                                PRINT(BANCS.OUTPUT.RespCode)
                                                                BANCS.OUTPUT.ReservedField2 = "NPCB FULLY APPROVED"
                                                                PRINT(BANCS.OUTPUT.ReservedField2)
                                                        #}
                                                        ENDIF
                                                #}
                                                ENDIF

                                        #}
                                        ENDIF

                                #}
                                ENDIF

                        #}
                        ENDIF
                #}
                ENDIF

                IF (BANCS.INPUT.Command == "CWRS") THEN
                #{
                        IF (BANCS.INPUT.ReservedField2 == "CB WITH AUTH") THEN
                        #{
                                IF (BANCS.INPUT.RespCode == "00") THEN
                                #{
                                        sv_a = BANCS.OUTPUT.Foracid
                                        sv_s = "onan_foracid|select NEW_FORACID from tbaadm.casa_od_mappings where OLD_FORACID = '" + BANCS.OUTPUT.Foracid + "' and rownum<2"
                                        print(sv_s)
                                        sv_u = urhk_dbSelectWithBind(sv_s)
                                        print(sv_u)
                                        IF (sv_u == 0) THEN
                                        #{
                                                sv_c = BANCS.OUTPARAM.onan_foracid
                                                print(sv_c)
                                        ELSE
                                        #{
                                                sv_c = sv_a
                                                print(sv_c)
                                        #}
                                        ENDIF
                                        BANCS.OUTPUT.Foracid = sv_c
                                        sv_b = BANCS.INPUT.SerialNum
                                        PRINT(sv_b)
                                        sv_c = "TRACENUM,RESERVEDFIELD2DATA,MSGAMT,RSPCODE,MSGTYPE|SELECT TRACE,RESERVEDFIELD2,MSGAMT/100,RSPCODE,MSGTYPE FROM TBAADM.C_CMESG WHERE TRACE = '" + BANCS.INPUT.SerialNum + "' AND RSPCODE=04 AND MSGTYPE='CWDS' AND DCC_ID='EFT'"
                                        PRINT(sv_c)
                                        sv_d = urhk_dbSelectWithBind(sv_c)
                                        PRINT(sv_d)
                                        IF (sv_d == 0) THEN
                                        #{
                                                CUST.DATA.TRACENUM = BANCS.OUTPARAM.TRACENUM
                                                PRINT(CUST.DATA.TRACENUM)
                                                CUST.DATA.RESERVEDFIELD2DATA = BANCS.OUTPARAM.RESERVEDFIELD2DATA
                                                PRINT(CUST.DATA.RESERVEDFIELD2DATA)
                                                CUST.DATA.MSGAMT = BANCS.OUTPARAM.MSGAMT
                                                PRINT(CUST.DATA.MSGAMT)
                                                CUST.DATA.RSPCODE = BANCS.OUTPARAM.RSPCODE
                                                PRINT(CUST.DATA.RSPCODE)
                                                CUST.DATA.MSGTYPE = BANCS.OUTPARAM.MSGTYPE
                                                PRINT(CUST.DATA.MSGTYPE)
                                        #}
                                        ELSE
                                        #{
                                                CUST.DATA.TRACENUM = ""
                                                CUST.DATA.RESERVEDFIELD2DATA = ""
                                                CUST.DATA.MSGAMT = ""
                                                CUST.DATA.RSPCODE = ""
                                                CUST.DATA.MSGTYPE = ""
                                        #}
                                        ENDIF
                                        PRINT(BANCS.OUTPUT.ReservedField1)
                                        CUST.DATA.TranAmt = "0000"+BANCS.INPUT.ReservedField1
                                        PRINT(CUST.DATA.TranAmt)
                                        CUST.DATA.Command = BANCS.INPUT.Command
                                        PRINT(CUST.DATA.Command)
                                        CUST.DATA.Foracid = BANCS.OUTPUT.Foracid
                                        PRINT(CUST.DATA.Foracid)
                                        PRINT(BANCS.OUTPUT.ReservedField2)
                                        CUST.DATA.CardAcceptorName = MID$(BANCS.INPUT.CardAcceptorName,0,30)
                                        PRINT(CUST.DATA.CardAcceptorName)
                                        CUST.DATA.CardNum = BANCS.INPUT.CustCardId
                                        PRINT(CUST.DATA.CardNum)
                                        CUST.DATA.SerialNum = BANCS.INPUT.SerialNum
                                        PRINT(CUST.DATA.SerialNum)
                                        sv_i = BANCS.OUTPUT.Foracid
                                        PRINT(sv_i)
                                        sv_j = urhk_valAcctNumber(sv_i)
                                        PRINT(sv_j)
                                        IF (sv_j == 0) THEN
                                        #{
                                                #IF ((CUST.DATA.RESERVEDFIELD2DATA != "PCB PARTIAL APPROVED") OR (CUST.DATA.RESERVEDFIELD2DATA != "POS PARTIAL APPROVED")) THEN
                                                #{
                                                        IF (BANCS.INPUT.ReservedField2 != "") THEN
                                                        #{
                                                                sv_l = CDOUBLE(CUST.DATA.TranAmt)/100
                                                                PRINT(sv_l)
                                                                IF (sv_l > "0.00") THEN
                                                                #{
                                                                        IF (BANCS.INPUT.ReservedField1 != "VDVISA000000") THEN
                                                                        #{
                                                                                sv_k = urhk_getAcctDetailsInRepository(sv_i)
                                                                                PRINT(sv_k)
                                                                                PRINT(BANCS.OUTPARAM.EffAvailableAmt)
                                                                                sv_e = system("babx4061 $B2K_SESSION_ID  Partial_Auth_CashBack_Reversal.scr " + CUST.DATA.Foracid + " " + CUST.DATA.TranAmt +" " + CUST.DATA.CardNum + " " + CUST.DATA.CardAcceptorName + " " + CUST.DATA.SerialNum + " ")
                                                                                PRINT(sv_e)
                                                                                PRINT(BANCS.OUTPUT.RespCode)
                                                                                BANCS.OUTPUT.ReservedField2 = "PCB FULL REV APPROVED"
                                                                                PRINT(BANCS.OUTPUT.ReservedField2)
                                                                #}
                                                                ENDIF
                                                        #}
                                                        ENDIF
                                                #}
                                                ENDIF
                                                #}
                                                #ENDIF
                                        IF (CUST.DATA.RESERVEDFIELD2DATA == "POS PARTIAL APPROVED") THEN
                                        #{
                                                sv_e = system("babx4061 $B2K_SESSION_ID  Partial_Auth_POS_Insufficient_Balance_Reversal.scr " + CUST.DATA.Foracid + " " + BANCS.INPUT.TranAmt + " " + CUST.DATA.CardNum + " " + CUST.DATA.CardAcceptorName + " " + CUST.DATA.SerialNum + " ")
                                                PRINT(sv_e)
                                                BANCS.OUTPUT.ReservedField2 = "POS PARTIAL REV APPROVED"
                                                PRINT(BANCS.OUTPUT.ReservedField2)
                                        #}
                                        ENDIF

                                        BANCS.OUTPUT.ReservedField2 = "PCB PARTIAL REV APPROVED"
                                        PRINT(BANCS.OUTPUT.ReservedField2)
                                        #}
                                        ENDIF
                                #}
                                ENDIF
                        #}
                        ENDIF

                        IF (BANCS.INPUT.ReservedField2 == "CB NO AUTH") THEN
                        #{
                                IF (BANCS.INPUT.RespCode == "00") THEN
                                #{
                                        sv_a = BANCS.OUTPUT.Foracid
                                        sv_s = "onan_foracid|select NEW_FORACID from tbaadm.casa_od_mappings where OLD_FORACID = '" + BANCS.OUTPUT.Foracid + "' and rownum<2"
                                        print(sv_s)
                                        sv_u = urhk_dbSelectWithBind(sv_s)
                                        print(sv_u)
                                        IF (sv_u == 0) THEN
                                        #{
                                                sv_c = BANCS.OUTPARAM.onan_foracid
                                                print(sv_c)
                                        ELSE
                                        #{
                                                sv_c = sv_a
                                                print(sv_c)
                                        #}
                                        ENDIF
                                        BANCS.OUTPUT.Foracid = sv_c
                                        PRINT(BANCS.OUTPUT.ReservedField1)
                                        CUST.DATA.TranAmt = "0000"+BANCS.INPUT.ReservedField1
                                        PRINT(CUST.DATA.TranAmt)
                                        CUST.DATA.Command = BANCS.INPUT.Command
                                        PRINT(CUST.DATA.Command)
                                        CUST.DATA.Foracid = BANCS.OUTPUT.Foracid
                                        PRINT(CUST.DATA.Foracid)
                                        PRINT(BANCS.OUTPUT.ReservedField2)
                                        CUST.DATA.CardAcceptorName = MID$(BANCS.INPUT.CardAcceptorName,0,30)
                                        PRINT(CUST.DATA.CardAcceptorName)
                                        CUST.DATA.CardNum = BANCS.INPUT.CustCardId
                                        PRINT(CUST.DATA.CardNum)
                                        CUST.DATA.SerialNum = BANCS.INPUT.SerialNum
                                        PRINT(CUST.DATA.SerialNum)
                                        sv_i = BANCS.OUTPUT.Foracid
                                        PRINT(sv_i)
                                        sv_j = urhk_valAcctNumber(sv_i)
                                        PRINT(sv_j)
                                        IF (sv_j == 0) THEN
                                        #{
                                                        IF (BANCS.INPUT.ReservedField1 != "") THEN
                                                        #{
                                                                IF (BANCS.INPUT.ReservedField1 != "VDVISA000000") THEN
                                                                #{
                                                                        sv_k = urhk_getAcctDetailsInRepository(sv_i)
                                                                        PRINT(sv_k)
                                                                        PRINT(BANCS.OUTPARAM.EffAvailableAmt)
                                                                        sv_e = system("babx4061 $B2K_SESSION_ID  Partial_Auth_CashBack_Reversal.scr " + CUST.DATA.Foracid + " " + CUST.DATA.TranAmt +" " + CUST.DATA.CardNum + " " + CUST.DATA.CardAcceptorName + " " + CUST.DATA.SerialNum + " ")
                                                                        PRINT(sv_e)
                                                                        PRINT(BANCS.OUTPUT.RespCode)
                                                                        BANCS.OUTPUT.ReservedField2 = "NPCB FULL REV APPROVED"
                                                                        PRINT(BANCS.OUTPUT.ReservedField2)
                                                                #}
                                                                ENDIF
                                                        #}
                                                        ENDIF
                                        #}
                                        ENDIF
                                #}
                                ENDIF
                        #}
                        ENDIF
                #}
                ENDIF



                        IF (BANCS.INPUT.Command == "TRTS") THEN
                        #{
                                        IF (BANCS.INPUT.DevType == "ADJ") THEN
                                        #{
                                                CUST.DATA.Command = BANCS.INPUT.Command
                                                CUST.DATA.Foracid = BANCS.INPUT.CrForacid
                                                BANCS.OUTPUT.ReservedField2 = "0000"+BANCS.INPUT.ReservedField2
                                                PRINT(BANCS.OUTPUT.ReservedField2)
                                                CUST.DATA.TranAmt = BANCS.OUTPUT.ReservedField2
                                                CUST.DATA.TranCrncy = BANCS.INPUT.TranCrncy
                                                CUST.DATA.CardNum = BANCS.INPUT.CustCardId
                                                CUST.DATA.DeviceId  = BANCS.INPUT.DeviceId
                                                CUST.DATA.InsmntDetails  = BANCS.INPUT.InsmntDetails
                                                CUST.DATA.CrSolId       = BANCS.OUTPUT.CrSolId
                                                CUST.DATA.CrBankCode    = BANCS.OUTPUT.CrBankCode
                                                CUST.DATA.CardAcceptorName = MID$(BANCS.INPUT.CardAcceptorName,0,30)
                                                CUST.DATA.AvailBal = BANCS.OUTPUT.AvailBal
                                                print(CUST.DATA.Command)
                                                print(CUST.DATA.Foracid)
                                                print(CUST.DATA.TranAmt)
                                                print(CUST.DATA.TranCrncy)
                                                print(CUST.DATA.DeviceId)
                                                print(CUST.DATA.InsmntDetails)
                                                print(CUST.DATA.CrSolId)
                                                print(CUST.DATA.CrBankCode)
                                                print(CUST.DATA.CardAcceptorName)
                                                print(CUST.DATA.AvailBal)
                                                sv_i = BANCS.INPUT.CrForacid
                                                PRINT(sv_i)
                                                sv_j = urhk_valAcctNumber(sv_i)
                                                PRINT(sv_j)
                                                IF (sv_j == 0) THEN
                                                #{
                                                        sv_k = urhk_getAcctDetailsInRepository(sv_i)
                                                        PRINT(sv_k)
                                                        PRINT(BANCS.OUTPARAM.EffAvailableAmt)
                                                #}
                                                ENDIF

                                                sv_r = urhk_getFileLocation("EXE|babx4061")

                                                IF (sv_r==0) THEN
                                                #{
                                                        sv_i = BANCS.INPUT.CrForacid
                                                        PRINT(sv_i)
                                                        sv_j = urhk_valAcctNumber(sv_i)
                                                        PRINT(sv_j)
                                                        IF (sv_j == 0) THEN
                                                        #{
                                                                sv_k = urhk_getAcctDetailsInRepository(sv_i)
                                                                PRINT(sv_k)
                                                                PRINT(BANCS.OUTPARAM.EffAvailableAmt)
                                                        #}
                                                        ENDIF

                                                sv_e = system("babx4061 $B2K_SESSION_ID  Prime_Card_Adjustment.scr " + CUST.DATA.Foracid + " " + CUST.DATA.TranAmt +" " + CUST.DATA.CardNum + " " + BANCS.OUTPARAM.EffAvailableAmt + " " + CUST.DATA.CardAcceptorName + " ")
                                                PRINT(sv_e)
                                                #}
                                                ENDIF

                        #}
                        ENDIF
                #}
                ENDIF
        #}
        ENDIF
#)
ENDIF
#----------------------------Customization Ends Here-----------------------------------------------------------------------------------------------------#

#-----------------------------
# Entry into Grid
#-----------------------------

#BANCS.OUTPUT.SerialNum = LEFT$(BANCS.OUTPUT.SerialNum,10)
#BANCS.INPUT.CustCardId = LEFT$(BANCS.INPUT.CustCardId,15)

IF ((BANCS.INPUT.DccId == "EFT") OR (BANCS.INPUT.DccId == "CDM") OR (BANCS.INPUT.DccId == "SIM")) THEN


		IF (BANCS.OUTPUT.RespCode == "00") THEN
				sv_v = "Success"
		ELSE
				sv_v = "Rejected"
		ENDIF

		IF (BANCS.OUTPUT.RespCode == "116") THEN
				sv_v = "Insuff Bal"
		ENDIF

        print(BANCS.INPUT.CardAcceptorName)
        sv_z="'"
        sv_e=STRLEN(BANCS.INPUT.CardAcceptorName)
        print(sv_e)

        WHILE(sv_e > 0)
                sv_w=CHARAT(BANCS.INPUT.CardAcceptorName,sv_e-1)
                print(sv_w)
                IF(STRICMP(sv_w,sv_z)) THEN
                        BANCS.INPUT.CardAcceptorName=MID$(BANCS.INPUT.CardAcceptorName,0,sv_e)+"'"+MID$(BANCS.INPUT.CardAcceptorName,sv_e,STRLEN(BANCS.INPUT.CardAcceptorName))
                ENDIF
                sv_e=sv_e-1
        DO

        PRINT(BANCS.INPUT.CardAcceptorName)

###################Customization has Ended Here. You have reached your Destination. Thank you for Flying Air Sagu#################
		print(BANCS.OUTPUT.TranId)
		print(BANCS.OUTPUT.TranDate)
		print(BANCS.OUTPUT.BusDate)
		print(BANCS.STDIN.sysDate)

		IF ((BANCS.INPUT.Command =="CWDS") AND (MID$(BANCS.INPUT.DeviceId,0,3)=="PBL")) THEN
		#{
				lv_a = "PRYESCOUNT|SELECT COUNT(*) FROM TBAADM.C_CMESG WHERE MSGTYPE='CWDS' AND RSPCODE='00' AND MSGTIME BETWEEN TRUNC(SYSDATE,'MM') AND LAST_DAY(TO_DATE(TO_CHAR((SYSDATE),'DD-MM-YYYY'),'DD-MM-YYYY')) AND MSGACT = '"+BANCS.INPUT.Foracid+"' AND SUBSTR(TERMINAL,1,3)='PBL' AND MSGACT IN (SELECT FORACID FROM TBAADM.GAM WHERE SCHM_CODE IN (SELECT VARIABLE_VALUE FROM TBAADM.C_SETVAR WHERE MODULE_NAME='FREE_ATM' AND DEL_FLG='N'))"
				PRINT(lv_a)
				lv_b = urhk_dbSelectWithBind(lv_a)
				PRINT(lv_b)

		IF (lv_b == 0) THEN
		#{
				CUST.DATA.PRYESCOUNT = BANCS.OUTPARAM.PRYESCOUNT
				PRINT(CUST.DATA.PRYESCOUNT)
		#}
		ELSE
		#{
				CUST.DATA.PRYESCOUNT = ""
				PRINT(CUST.DATA.PRYESCOUNT)
		#}
		ENDIF

		lv_a = "CONFIGUREDCOUNT|SELECT VARIABLE_NAME FROM TBAADM.C_SETVAR WHERE MODULE_NAME='FREE_ATM' AND VARIABLE_VALUE IN (SELECT SCHM_CODE FROM TBAADM.GAM WHERE FORACID='"+BANCS.INPUT.Foracid+"')"
		PRINT(lv_a)
		lv_b = urhk_dbSelectWithBind(lv_a)
		PRINT(lv_b)
		IF (lv_b == 0) THEN
		#{
				CUST.DATA.CONFIGUREDCOUNT = BANCS.OUTPARAM.CONFIGUREDCOUNT
				PRINT(CUST.DATA.CONFIGUREDCOUNT)
		#}
		ELSE
		#{
				CUST.DATA.CONFIGUREDCOUNT = ""
				PRINT(CUST.DATA.CONFIGUREDCOUNT)
		#}
		ENDIF

		IF (CUST.DATA.PRYESCOUNT < CUST.DATA.CONFIGUREDCOUNT) THEN
		#{
				BANCS.OUTPUT.ReservedField1 = "FREE_ATM"
				PRINT(BANCS.OUTPUT.ReservedField1)
		#}
		ENDIF

		#}
		ENDIF

#----------------------------------------------------------------
#-------Decide the Foracid Based on the Request------------------
#----------------------------------------------------------------

		sv_i = BANCS.OUTPUT.Foracid
		print(sv_i)

		IF(BANCS.INPUT.DccId == "CDM") THEN
		#{
				IF(BANCS.INPUT.Command == "CDAS") THEN
				#{
						sv_i = BANCS.OUTPUT.CrForacid
						print(BANCS.OUTPUT.Foracid)
				#}
				ELSE
				#{
						sv_i = BANCS.OUTPUT.Foracid
						print(BANCS.OUTPUT.Foracid)
				#}
				ENDIF
		#}
		ENDIF

		IF (BANCS.INPUT.DccId == "EFT") THEN
		#{
				IF (BANCS.INPUT.Command == "TRTS") THEN
				#{
						IF (BANCS.INPUT.DevType == "ADJ") THEN
						#{
								sv_i = BANCS.OUTPUT.CrForacid
								PRINT(BANCS.OUTPUT.CrForacid)
						#}
						ENDIF
				#}
				ENDIF
		#}
		ENDIF

#----------------------------------------------------------------
#-------Decision Made by SagarSe7en------------------------------
#----------------------------------------------------------------

#---------------------------------------------------------------------------------------------------
# Customization by SagarSe7en to Derive the Finacle Account Number based on the Card Number Sent
# For Both Balance Inquiry and Cash Deposit
#---------------------------------------------------------------------------------------------------

		IF(BANCS.INPUT.DccId=="CDM") THEN
		#{
				IF(BANCS.INPUT.Command=="BLIR") THEN
				#{

						PRINT(BANCS.INPUT.Foracid)

						IF (strlen(rtrim(ltrim(BANCS.INPUT.Foracid)))==16) THEN
						#{
								sv_a= "finacleaccount|SELECT SUBSTR(ACCOUNT_NUMBER,4,13) FROM TBAADM.MVISADCDB WHERE CARD_NUMBER='" + BANCS.INPUT.Foracid + "' AND ROWNUM <2"
								PRINT(sv_a)

								sv_b=urhk_dbselectWithBind(sv_a)
								PRINT(sv_b)

								IF(sv_b==0) THEN
								#{
										CUST.DATA.FinacleAccount=BANCS.OUTPARAM.finacleaccount
										PRINT(BANCS.OUTPARAM.finacleaccount)
								#}
								ELSE
								#{
										CUST.DATA.FinacleAccount=""
								#}
								ENDIF
						#}
						ENDIF

				BANCS.OUTPUT.Foracid=CUST.DATA.FinacleAccount
				PRINT(BANCS.OUTPUT.Foracid)
				#}
				ENDIF

				sv_i = BANCS.OUTPUT.Foracid
				PRINT(sv_i)

		#}
		ENDIF

		IF(BANCS.INPUT.DccId=="CDM") THEN
		#{
				IF(BANCS.INPUT.Command=="CDAS") THEN
				#{

						PRINT(BANCS.INPUT.CrForacid)

						IF (strlen(rtrim(ltrim(BANCS.INPUT.CrForacid)))==16) THEN
						#{
								sv_a= "creditAccount|SELECT SUBSTR(ACCOUNT_NUMBER,4,13) FROM TBAADM.MVISADCDB WHERE CARD_NUMBER='" + BANCS.INPUT.CrForacid + "' AND ROWNUM <2"
								PRINT(sv_a)

								sv_b=urhk_dbselectWithBind(sv_a)
								PRINT(sv_b)

								IF(sv_b==0) THEN
								#{
										CUST.DATA.CreditAccount=BANCS.OUTPARAM.creditAccount
										PRINT(BANCS.OUTPARAM.creditAccount)
										BANCS.OUTPUT.CrForacid=CUST.DATA.CreditAccount
										PRINT(BANCS.OUTPUT.CrForacid)
								#}
								ELSE
								#{
										CUST.DATA.CreditAccount=BANCS.INPUT.CrForacid
								#}
								ENDIF
						#}
						ENDIF

				#BANCS.OUTPUT.CrForacid=CUST.DATA.CreditAccount
				#print(BANCS.OUTPUT.CrForacid)
				#}
				ENDIF

        sv_i = BANCS.OUTPUT.CrForacid
        PRINT(sv_i)
		#}
		ENDIF


sv_c = ""
sv_c = sv_c + "INSERT INTO tbaadm.C_CMESG (MSGTIME"
sv_c = sv_c + ","
sv_c = sv_c + "MSGTYPE "
sv_c = sv_c + ","
sv_c = sv_c + "MSGACT"
sv_c = sv_c + ","
sv_c = sv_c + "MSGAMT"
sv_c = sv_c + ","
sv_c = sv_c + "RSPCODE"
sv_c = sv_c + ","
sv_c = sv_c + "NARRATIVE "
sv_c = sv_c + ","
sv_c = sv_c + "TRACE"
sv_c = sv_c + ","
sv_c = sv_c + "CARDNUM"
sv_c = sv_c + ","
sv_c = sv_c + "TERMINAL"
sv_c = sv_c + ","
sv_c = sv_c + "TERMINALNAME"
sv_c = sv_c + ","
sv_c = sv_c + "CURRENCY"
sv_c = sv_c + ","
sv_c = sv_c + "RCRE_TIME,"
sv_c = sv_c + "RCRE_USER_ID,"
sv_c = sv_c + "LCHG_USER_ID,LCHG_TIME,ENTITY_CRE_FLG,DEL_FLG,BANK_ID,TRAN_ID,TRAN_DATE,VALUE_DATE,DCC_ID,RESERVEDFIELD2,RESERVEDFIELD1)"
sv_c = sv_c + " VALUES ("
sv_c = sv_c + "sysdate"
sv_c = sv_c + ",'"
sv_c = sv_c +  BANCS.OUTPUT.Command +"'"
sv_c = sv_c + ",'"
#sv_c = sv_c +  BANCS.INPUT.Foracid  +"'"
sv_c = sv_c + sv_i +"'"
sv_c = sv_c + ",'"
sv_c = sv_c +  BANCS.INPUT.TranAmt  +"'"
sv_c = sv_c + ",'"
sv_c = sv_c +  BANCS.INPUT.RespCode  +"'"
sv_c = sv_c + ",'"
sv_c = sv_c +  sv_v  +"'"
sv_c = sv_c + ",'"
sv_c = sv_c +  BANCS.OUTPUT.SerialNum +"'"
sv_c = sv_c + ",'"
sv_c = sv_c +  BANCS.INPUT.CustCardId  +"'"
sv_c = sv_c + ",'"
sv_c = sv_c +  BANCS.INPUT.DeviceId  +"'"
sv_c = sv_c + ",'"
sv_c = sv_c +  BANCS.INPUT.CardAcceptorName  +"'"
sv_c = sv_c + ",'"
sv_c = sv_c +  BANCS.INPUT.TranCrncy +"'"
sv_c = sv_c +  ","
sv_c = sv_c +  "to_date('" + MID$(BANCS.STDIN.sysDate, 0, 10)+ "','DD-MM-YYYY'),'"
sv_c = sv_c + BANCS.STDIN.userId + "','"
sv_c = sv_c + BANCS.STDIN.userId + "',"
sv_c = sv_c +  "to_date('" + MID$(BANCS.STDIN.sysDate, 0, 10)+ "','DD-MM-YYYY'),'"
sv_c = sv_c + "N','"
sv_c = sv_c + "N','"
sv_c = sv_c + BANCS.STDIN.contextBankId + "'"
sv_c = sv_c + ",'"
sv_c = sv_c + BANCS.OUTPUT.TranId +"'"
sv_c = sv_c + ","
sv_c = sv_c + "to_date('" + MID$(BANCS.OUTPUT.TranDate, 0, 10)+ "','DD-MM-YYYY')"
sv_c = sv_c + ","
sv_c = sv_c + "to_date(to_date('" + MID$(BANCS.INPUT.BusDate, 0, 10)+ "','YYYYMMDD'),'DD-MM-YYYY')"
sv_c = sv_c + ",'"
sv_c = sv_c + BANCS.INPUT.DccId +"'" 
sv_c = sv_c + ",'"
sv_c = sv_c + BANCS.OUTPUT.ReservedField2 +"'"
sv_c = sv_c + ",'"
#sv_c = sv_c + BANCS.INPUT.ReservedField2 +"'"
sv_c = sv_c + BANCS.OUTPUT.ReservedField1 +"'"
sv_c = sv_c + ")"
print(sv_c)
sv_d = urhk_dbsqlWithBind(sv_c)
#sv_d = urhk_dbsqlWithBind(sv_c)

IF(sv_d == 0) THEN
#{
       sv_g = urhk_dbsqlWithBind("commit")
       BANCS.OUTPUT.SuccessOrFailure = "S"
       sv_u = urhk_SetOrbOut("SuccessOrFailure|Y")


        #----------------------Customization by SagarSe7en to Return Back The Processing Code to Normal After DB Insertion For Visa Mandate Transactions.-----------------------------#
        IF (BANCS.INPUT.DccId == "EFT") THEN
        #{
                        IF (BANCS.INPUT.Command == "BLIS") THEN
                        #{
                                IF (BANCS.INPUT.ReservedField2 == "VISAVISA-2400000") THEN
                                #{
                                        IF ((BANCS.INPUT.ReservedField1 == "VDVISA000000") OR (BANCS.INPUT.ReservedField2 == "VMDT REVERSAL MESSAGE")) THEN
                                        #{
                                                BANCS.OUTPUT.Command = "BLIS"
                                                print(BANCS.OUTPUT.Command)
                                        #}
                                        ENDIF
                                #}
                                ENDIF
                        #}
                        ENDIF

                        IF (BANCS.OUTPUT.ReservedField1 == "FREE_ATM") THEN
                        #{
                                BANCS.OUTPUT.ReservedField1 = ""
                                PRINT(BANCS.OUTPUT.ReservedField1)
                        #}
                        ENDIF

                        IF (BANCS.INPUT.DevType == "PCB") THEN
                        #{
                                BANCS.OUTPUT.ReservedField3 = BANCS.STDIN.homeSolId
                                PRINT(BANCS.OUTPUT.ReservedField3)
                        #}
                        ENDIF
        #}
        ENDIF
#}
ELSE
#{
        BANCS.OUTPUT.SuccessOrFailure = "F"
        sv_u = "SuccessOrFailure|N"
        GOTO ENDOFSCRIPT
#}
#ENDIF
#ENDIF


#BANCS.INPUT.Fee="KESD0000000000003000"
#BANCS.INPUT.StlmntFee="KESD0000000000003000"
#BANCS.OUTPUT.Fee="KESD0000000000003000"
#BANCS.OUTPUT.StlmntFee="KESD0000000000003000"

trace off
end-->
 

Javascript Online Compiler

Write, Run & Share Javascript code online using OneCompiler's JS online compiler for free. It's one of the robust, feature-rich online compilers for Javascript language. Getting started with the OneCompiler's Javascript editor is easy and fast. The editor shows sample boilerplate code when you choose language as Javascript and start coding.

About Javascript

Javascript(JS) is a object-oriented programming language which adhere to ECMA Script Standards. Javascript is required to design the behaviour of the web pages.

Key Features

  • Open-source
  • Just-in-time compiled language
  • Embedded along with HTML and makes web pages alive
  • Originally named as LiveScript.
  • Executable in both browser and server which has Javascript engines like V8(chrome), SpiderMonkey(Firefox) etc.

Syntax help

STDIN Example

var readline = require('readline');
var rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  terminal: false
});

rl.on('line', function(line){
    console.log("Hello, " + line);
});

variable declaration

KeywordDescriptionScope
varVar is used to declare variables(old way of declaring variables)Function or global scope
letlet is also used to declare variables(new way)Global or block Scope
constconst is used to declare const values. Once the value is assigned, it can not be modifiedGlobal or block Scope

Backtick Strings

Interpolation

let greetings = `Hello ${name}`

Multi line Strings

const msg = `
hello
world!
`

Arrays

An array is a collection of items or values.

Syntax:

let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array("value1","value2",..etc);

Example:

let mobiles = ["iPhone", "Samsung", "Pixel"];

// accessing an array
console.log(mobiles[0]);

// changing an array element
mobiles[3] = "Nokia";

Arrow functions

Arrow Functions helps developers to write code in concise way, it’s introduced in ES6.
Arrow functions can be written in multiple ways. Below are couple of ways to use arrow function but it can be written in many other ways as well.

Syntax:

() => expression

Example:

const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
const squaresOfEvenNumbers = numbers.filter(ele => ele % 2 == 0)
                                    .map(ele => ele ** 2);
console.log(squaresOfEvenNumbers);

De-structuring

Arrays

let [firstName, lastName] = ['Foo', 'Bar']

Objects

let {firstName, lastName} = {
  firstName: 'Foo',
  lastName: 'Bar'
}

rest(...) operator

 const {
    title,
    firstName,
    lastName,
    ...rest
  } = record;

Spread(...) operator

//Object spread
const post = {
  ...options,
  type: "new"
}
//array spread
const users = [
  ...adminUsers,
  ...normalUsers
]

Functions

function greetings({ name = 'Foo' } = {}) { //Defaulting name to Foo
  console.log(`Hello ${name}!`);
}
 
greet() // Hello Foo
greet({ name: 'Bar' }) // Hi Bar

Loops

1. If:

IF is used to execute a block of code based on a condition.

Syntax

if(condition){
    // code
}

2. If-Else:

Else part is used to execute the block of code when the condition fails.

Syntax

if(condition){
    // code
} else {
    // code
}

3. Switch:

Switch is used to replace nested If-Else statements.

Syntax

switch(condition){
    case 'value1' :
        //code
        [break;]
    case 'value2' :
        //code
        [break;]
    .......
    default :
        //code
        [break;]
}

4. For

For loop is used to iterate a set of statements based on a condition.

for(Initialization; Condition; Increment/decrement){  
//code  
} 

5. While

While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.

while (condition) {  
  // code 
}  

6. Do-While

Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.

do {  
  // code 
} while (condition); 

Classes

ES6 introduced classes along with OOPS concepts in JS. Class is similar to a function which you can think like kind of template which will get called when ever you initialize class.

Syntax:

class className {
  constructor() { ... } //Mandatory Class method
  method1() { ... }
  method2() { ... }
  ...
}

Example:

class Mobile {
  constructor(model) {
    this.name = model;
  }
}

mbl = new Mobile("iPhone");