ADMINISTRATOR PROGRAM
IDENTIFICATION DIVISION.
PROGRAM-ID. PROGA.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-ADUID PIC S9(9) COMP.
01 WS-ADPWD PIC X(20).
01 WS-ADPWD1 PIC X(20).
01 WS-INVALID PIC X(13) VALUE 'INVALID ENTRY'.
01 WS-ACT1F PIC X(10).
01 WS-ACT2F PIC X(10).
01 WS-MBL1F PIC S9(9) COMP.
01 WS-MBL2F PIC S9(9) COMP.
01 WS-INT1F PIC S9(9) COMP.
01 WS-INT2F PIC S9(9) COMP.
01 WS-STATUS PIC S9(9) COMP VALUE 0.
01 WS-ACNSTF PIC S9(9) COMP.
01 WS-ACNSTUF PIC S9(9) COMP.
01 WS-STATUS1 PIC S9(9) COMP.
01 WS-SAVINGS PIC X(10) VALUE 'SAVINGS '.
01 WS-CURRENT PIC X(10) VALUE 'CURRENT '.
01 WS-OPER PIC X(19) VALUE 'OPERATION PERFORMED'.
COPY ADACINF.
COPY ADMIN.
COPY ADMNUSR.
COPY FREEZE.
* COPY EIBAID.
COPY DFHAID.
EXEC SQL
INCLUDE SQLCA
END-EXEC.
PROCEDURE DIVISION.
ADMINENTRY.
EXEC CICS SEND CONTROL ERASE END-EXEC.
MOVE LOW-VALUES TO ADMENO.
MOVE LOW-VALUES TO ADMENUO.
MOVE LOW-VALUES TO ADMINO.
MOVE LOW-VALUES TO USERO.
MOVE LOW-VALUES TO FREEZMO.
EXEC CICS SEND MAP('ADMIN') MAPSET('ADMNUSR')
END-EXEC.
EXEC CICS RECEIVE MAP('ADMIN') MAPSET('ADMNUSR')
END-EXEC.
MOVE ADUIDI TO WS-ADUID.
MOVE ADPWDI TO WS-ADPWD.
EXEC SQL
SELECT PWORD INTO :WS-ADPWD1 FROM TABA
WHERE USERID = :WS-ADUID
END-EXEC.
IF WS-ADPWD = WS-ADPWD1 PERFORM ADMINPARA
ELSE PERFORM ADMINVALID
END-IF.
EXEC CICS RETURN END-EXEC.
ADMINPARA.
EXEC CICS SEND CONTROL ERASE END-EXEC.
EXEC CICS SEND MAP('ADMENU') MAPSET('ADMIN')
END-EXEC.
EXEC CICS RECEIVE MAP('ADMENU') MAPSET('ADMIN')
END-EXEC.
IF ADCHCEI = 1 PERFORM ADACINFO
ELSE IF ADCHCEI = 2 PERFORM FRZACC
ELSE IF ADCHCEI = 3 PERFORM LOGOUTPARA
ELSE PERFORM ADMINENTRY
END-IF.
ADACINFO.
EXEC CICS SEND CONTROL ERASE END-EXEC.
EXEC SQL
SELECT MIN_BAL, INTEREST INTO :WS-MBL1F,
:WS-INT1F FROM ACCTAB WHERE ACCTYPE = :WS-SAVINGS
END-EXEC.
MOVE WS-SAVINGS TO AC1FO.
MOVE WS-MBL1F TO MB1FO.
MOVE WS-INT1F TO IN1FO.
EXEC SQL
SELECT MIN_BAL, INTEREST INTO :WS-MBL2F,
:WS-INT2F FROM ACCTAB WHERE ACCTYPE = :WS-CURRENT
END-EXEC.
MOVE WS-CURRENT TO AC2FO.
MOVE WS-MBL2F TO MB2FO.
MOVE WS-INT2F TO IN2FO.
EXEC CICS SEND CONTROL ERASE END-EXEC.
EXEC CICS SEND MAP('ADMEN') MAPSET('ADACINF')
END-EXEC.
EXEC CICS RECEIVE MAP('ADMEN') MAPSET('ADACINF')
END-EXEC.
MOVE AC1FI TO WS-ACT1F.
MOVE AC2FI TO WS-ACT2F.
MOVE MB1FI TO WS-MBL1F.
MOVE MB2FI TO WS-MBL2F.
MOVE IN1FI TO WS-INT1F.
MOVE IN2FI TO WS-INT2F.
EXEC SQL
UPDATE ACCTAB SET MIN_BAL = :WS-MBL1F, INTEREST = :WS-INT1F
WHERE ACCTYPE = :WS-SAVINGS
END-EXEC.
EXEC CICS SYNCPOINT END-EXEC.
EXEC SQL
UPDATE ACCTAB SET MIN_BAL = :WS-MBL2F, INTEREST = :WS-INT2F
WHERE ACCTYPE = :WS-CURRENT
END-EXEC.
EXEC CICS SYNCPOINT END-EXEC.
* PERFORM ACOUNTSAVE. &~bsp sBbznbsp5;Z&o w7C-26ncrpu3B-36nbsp;
IF EIBAID = DFHPF3 PERFORM ADMINPARA.
PERFORM ADMINPARA.
FRZACC.
EXEC CICS SEND CONTROL ERASE END-EXEC.
EXEC CICS SEND MAP('FREEZM') MAPSET('FREEZE')
END-EXEC.
EXEC CICS RECEIVE MAP('FREEZM') MAPSET('FREEZE')
END-EXEC.
IF ACNSTFL > 0
MOVE ACNSTFI TO WS-ACNSTF
MOVE 1 TO WS-STATUS
EXEC SQL
UPDATE MASTAB SET STATUS = :WS-STATUS
WHERE ACCNO = :WS-ACNSTF
END-EXEC.
EXEC CICS SYNCPOINT END-EXEC.
IF ACNSTUFL > 0
MOVE ACNSTUFI TO WS-ACNSTUF
MOVE 0 TO WS-STATUS
EXEC SQL
UPDATE MASTAB SET STATUS = :WS-STATUS
WHERE ACCNO = :WS-ACNSTUF
END-EXEC.
EXEC CICS SYNCPOINT END-EXEC.
EXEC CICS SEND TEXT
FROM(WS-OPER)
LENGTH(LENGTH OF WS-OPER)
FREEKB
END-EXEC.
EXEC CICS SEND CONTROL ERASE END-EXEC.
PERFORM ADMINPARA.
*ACOUNTSAVE.
* MOVE AC1FI TO WS-ACT1F.
* MOVE AC2FI TO WS-ACT2F.
* MOVE MB1FI TO WS-MBL1F.
* MOVE MB2FI TO WS-MBL2F.
* MOVE IN1FI TO WS-INT1F.
* MOVE IN2FI TO WS-INT2F.
* EXEC SQL
* UPDATE ACCTAB SET MIN_BAL = :WS-MBL1F, INTEREST = :WS-INT1F
* WHERE ACCTYPE = :WS-ACT1F
* END-EXEC.
* EXEC CICS SYNCPOINT END-EXEC.
* EXEC SQL
* UPDATE ACCTAB SET MIN_BAL = :WS-MBL2F, INTEREST = :WS-INT2F
* WHERE ACCTYPE = :WS-ACT2F
* END-EXEC.
* EXEC CICS SYNCPOINT END-EXEC.
ADMINVALID.
EXEC CICS SEND TEXT
FROM(WS-INVALID)
FREEKB
END-EXEC.
PERFORM ADMINENTRY.
INVALIDPARA.
EXEC CICS SEND TEXT
FROM(WS-INVALID)
LENGTH(LENGTH OF WS-INVALID)
FREEKB
END-EXEC.
LOGOUTPARA.
EXEC CICS LINK PROGRAM ('MAINP')
END-EXEC.
0 comments:
Post a Comment