SQLExecutor  con = null;
	    SQLStatementObject pstmt = null;
	    NewFundTrackingWrapper newFundTrackingWrapper = null;
	    List<NewFundTrackingWrapper> newFundTrackingWrapperList = new ArrayList<>();
	    NewFundTrackingEntityKey key = (NewFundTrackingEntityKey) argKey;
		SQLResultObject rs = null;
		
		if (out == null) {
			out = LogWriter.getInstance(NEW_FUND_HELPER, "getNewFundTrackingDetails");
		}
		out.println("NewFundTrackingHelper - getNewFundTrackingDetails start");
		try {
	        con = SQLExecutor.getInstance(false,EBBSConstants.EBBS_APPLICATION);

			if(key.fetchForUpdate) {
	            pstmt = con.getStatementObject(SELECT_SQL, true, false);

	        } else {
	            pstmt=con.getStatementObject(SELECT_SQL, false, false);
	        }

			pstmt.setString(1,key.relationshipNo);
			
	        rs = pstmt.executeQuery();
	        while(rs.next()) {
	                newFundTrackingWrapper = new NewFundTrackingWrapper();
	                newFundTrackingWrapper.relationshipNo = rs.getString(1);
	                newFundTrackingWrapper.transactionDate = rs.getDate(2);
	                newFundTrackingWrapper.transactionBranch = rs.getString(3);
	                newFundTrackingWrapper.channelID = rs.getString(4);
	                newFundTrackingWrapper.batchNo = rs.getString(5);
	                newFundTrackingWrapper.seqNo = rs.getString(6);
	                newFundTrackingWrapper.currencyCode = rs.getString(7);
	                newFundTrackingWrapper.accountNo = rs.getString(8);
	                newFundTrackingWrapper.creditdebit = Utility.getChar(rs.getString(9));
	                newFundTrackingWrapper.trnCode = rs.getString(10);
	                newFundTrackingWrapper.newFundIn = rs.getBigDecimal(11);
	                newFundTrackingWrapper.newFundUtilized = rs.getBigDecimal(12);	
	                newFundTrackingWrapper.makerDetail = new UserDetail();
	                newFundTrackingWrapper.makerDetail.setUserDate(rs.getDate(13));
	                newFundTrackingWrapper.makerDetail.setUserTime(rs.getTime(14));
	                newFundTrackingWrapper.makerDetail.setUserID(rs.getString(15));
	                newFundTrackingWrapper.makerDetail.setUserBranch(rs.getString(16));
	                newFundTrackingWrapper.makerDetail.setUserIPAddress(rs.getString(17));
	                newFundTrackingWrapper.checkerDetail = new UserDetail();
	                newFundTrackingWrapper.checkerDetail.setUserDate(rs.getDate(18));
	                newFundTrackingWrapper.checkerDetail.setUserTime(rs.getTime(19));
	                newFundTrackingWrapper.checkerDetail.setUserID(rs.getString(20));
	                newFundTrackingWrapper.checkerDetail.setUserBranch(rs.getString(21));
	                newFundTrackingWrapper.checkerDetail.setUserIPAddress(rs.getString(22));
	                //ADO-3594456 - Start
	                newFundTrackingWrapper.newFundDate = rs.getDate(23);
	                newFundTrackingWrapper.processFlag = Utility.getChar(rs.getString(24));
	                //ADO-3594456 - End
					newFundTrackingWrapperList.add(newFundTrackingWrapper);
	        } 
	    } catch(SQLExecuteException e) {
	         scb.util.LogWriter.getInstance().printErrorMessage(e);
	        throw new javax.ejb.FinderException(e.getSQLState() + scb.util.EBBSConstants.MESSAGE_DELIMITER + e.getMessage());

	    } catch(javax.naming.NamingException e) {
	         scb.util.LogWriter.getInstance().printErrorMessage(e);
	        throw new javax.ejb.FinderException(scb.util.EBBSConstants.NAMING_EXCEPTION);


explain line by line