Advertisement
Guest User

Untitled

a guest
Jul 20th, 2018
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. SUBROUTINE I.EB.CARDTASK.TXN
  2. *-----------------------------------------------------------------------------
  3. *
  4. *-----------------------------------------------------------------------------
  5. * Modification History :
  6. *-----------------------------------------------------------------------------
  7.     $INSERT I_COMMON
  8.     $INSERT I_EQUATE
  9.     $INSERT I_F.EB.CARDTASK.TRANSACTION
  10.     $INSERT I_F.EB.CARDTASK.CRD
  11.     $INSERT I_F.ACCOUNT
  12. *-----------------------------------------------------------------------------
  13.  
  14.     GOSUB OPEN.FILES
  15.     GOSUB READ.CARD
  16.     GOSUB READ.ACC
  17.     GOSUB CHECK.LIMIT
  18.     GOSUB CHECK.VAL.DATE
  19.     GOSUB CHECK.BALANCE
  20. RETURN
  21. *-----------------------------------------------------------------------------
  22. OPEN.FILES:
  23.     FN.CARD = "F.EB.CARDTASK.CRD"
  24.     F.CARD  = ""
  25.     CALL OPF(FN.CARD,F.CARD)
  26.    
  27.     FN.ACC = "F.ACCOUNT"
  28.     F.ACC  = ""
  29.     CALL OPF(FN.ACC,F.ACC)
  30. RETURN
  31. *-----------------------------------------------------------------------------
  32. READ.CARD:
  33.     CARD.ID  = R.NEW(EB.CAR47.CARD)
  34.     R.CARD   = ""
  35.     ERR.CARD = ""
  36.     CALL F.READ(FN.CARD,CARD.ID,R.CARD,F.CARD,ERR.CARD)
  37.    
  38. RETURN
  39. *-----------------------------------------------------------------------------
  40. READ.ACC:
  41.     ACC.ID  = R.NEW(EB.CAR47.CARD)
  42.     R.ACC   = ""
  43.     ERR.ACC = ""
  44.     CALL F.READ(FN.ACC,ACC.ID,R.ACC,F.ACC,ERR.ACC)
  45.    
  46. RETURN
  47. *-----------------------------------------------------------------------------
  48. CHECK.LIMIT:
  49.     TXN.AMT = R.NEW(EB.CAR47.AMOUNT)
  50.     LIMIT   = R.CARD<EB.CAR77.LIMIT>
  51.     USAGE   = R.CARD<EB.CAR77.LIMIT.USAGE>
  52.    
  53.     IF ((USAGE + TXN.AMT) GT LIMIT) THEN
  54.         AF = EB.CAR47.AMOUNT
  55.         AV = 1
  56.         AS = 1
  57.        
  58.         ETEXT<1>   = "EB-LIMIT.ERROR"
  59.         ETEXT<2,1> = (USAGE + TXN.AMT) - LIMIT
  60.         ETEXT<2,2> = LIMIT
  61.        
  62.         CALL STORE.END.ERROR
  63.     END
  64.    
  65. RETURN
  66. *-----------------------------------------------------------------------------
  67. CHECK.VAL.DATE:
  68.    
  69.     CARD.DATE = R.CARD<EB.CAR77.DATE>
  70.    
  71.     IF (CARD.DATE LT TODAY) THEN
  72.         AF = EB.CAR47.CARD
  73.         AV = 1
  74.         AS = 1
  75.        
  76.         ETEXT<1>   = "EB-DATE.ERROR"
  77.         ETEXT<2,1> = CARD.DATE
  78.        
  79.         CALL STORE.END.ERROR
  80.     END
  81.    
  82. RETURN
  83. *-----------------------------------------------------------------------------
  84. CHECK.BALANCE:
  85.     accountKey = R.CARD<EB.CAR77.ACCOUNT>
  86.     workingBal = ""
  87.     response   = ""
  88.    
  89.     CALL AccountService.getWorkingBalance(accountKey, workingBal, response)
  90.    
  91.     IF(response NE "") THEN
  92.        
  93.         AF = EB.CAR47.AMOUNT
  94.         AV = 1
  95.         AS = 1
  96.        
  97.        
  98.         ETEXT = "" : FM : response
  99.         CALL STORE.END.ERROR
  100.    
  101.         RETURN
  102.        
  103.     END ELSE
  104.         WORKING.BAL = workingBal
  105.     END
  106.        
  107. ;*GET THE CUMULATIVE OF THE LOCKED AMOUNT
  108.        
  109.     POS = ""
  110.     LOCATE TODAY IN R.ACC<AC.FROM.DATE,1> BY "AR" SETTING POS ELSE
  111.         POS--
  112.     END
  113.     TOTAL.LOCK.AMT = R.ACC<AC.LOCKED.AMOUNT,POS>
  114.    
  115. ;* AVAIABLE BALANCE
  116.     AVAILABLE.BAL = WORKING.BAL - TOTAL.LOCK.AMT
  117.  
  118. ;*DO CHECK
  119.  
  120.     TXN.AMT = R.NEW(EB.CAR47.AMOUNT)
  121.  
  122.     IF((AVAILABLE.BAL - TXN.AMT) LT 0) THEN
  123.         AF = EB.CAR47.AMOUNT
  124.         AV = 1
  125.         AS = 1
  126.    
  127.         ETEXT = "EB-BALANCE.ERROR" : FM : AVAILABLE.BAL : SPACE(1) : LCCY : VM : TOTAL.LOCK.AMT
  128.         CALL STORE.END.ERROR
  129.     END
  130. RETURN
  131.  
  132. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement