📄 bcb8311.pco
字号:
GO TO ERRCHK END-IF END-IF MOVE CCY-INTDAY TO WK-DITCST COMPUTE WK-CRATSF = BAL-CRATSF / WK-DITCST / 100 MOVE WK-CRATSF TO WK-NXTVAL2 ELSE MOVE 0 TO WK-NXTVAL2020323* IF BAL-INTBAL > 0020323* THEN020323* DISPLAY 'CR-INTBAL <> 0 CINRAT NOT FOUND'020323* MOVE '1' TO WK-ERR-FLAG020323* GO TO 5104-EXIT020323* END-IF END-IF END-IF. 5104-EXIT. EXIT. ******************************************************************* **5105-UPDATE-ACTCUT 将帐户的利息写入ACTCUT的应收或应付利息中 *** ******************************************************************* 5105-UPDATE-ACTCUT. MOVE '/5105-UPDATE-ACTCUT/' TO WK-PARA. EXEC SQL UPDATE ACTCUT SET DACINT = :WK-DACINT, CACINT = :WK-CACINT WHERE ORGIDT = :OLD-ORGIDT AND CUSIDT = :OLD-CUSIDT AND APCODE = :OLD-APCODE AND CURCDE = :OLD-CURCDE AND RECSTS = :CNST-M-RECSTS-VALID END-EXEC. MOVE SQLCODE TO SQL-ERR-CODE IF NOT SQL-C-NORMAL THEN IF SQL-C-RECORD-NOT-FOUND THEN DISPLAY 'UPDATE ACTCUT ERR!' MOVE '1' TO WK-ERR-FLAG ELSE GO TO ERRCHK END-IF END-IF. MOVE 0 TO WK-DACINT. MOVE 0 TO WK-CACINT. MOVE 0 TO WK-DR-INT. MOVE 0 TO WK-CR-INT. MOVE 0 TO WK-CR-INT1. MOVE 0 TO WK-CR-INT2. MOVE 0 TO WK-DR-ALL-INT. MOVE 0 TO WK-CR-ALL-INT. MOVE 0 TO WK-DR-ACCM. MOVE 0 TO WK-CR-ACCM. MOVE 0 TO WK-CR-ACCM1. MOVE 0 TO WK-CR-ACCM2. MOVE 0 TO WK-NXTVAL1. MOVE 0 TO WK-NXTVAL2. MOVE 0 TO WK-NXTVAL3. MOVE SPACES TO OLD-INTDAT. 5105-EXIT. EXIT. ******************************************************************* ***5106-GET-XIE-CINRAT 取计息帐户当日贷方日利率 *** ******************************************************************* 5106-GET-XIE-CINRAT. MOVE '/5106-GET-XIE-CINRAT/' TO WK-PARA. IF CBH-CINRAT NOT = SPACES THEN EXEC SQL SELECT MAX(EFFDAT) INTO :WK-EFFDAT FROM ACTIRT WHERE CURCDE = :CBH-CURCDE AND IRTKDE = :CBH-CINRAT AND EFFDAT <= :CBH-ERYDAT AND RECSTS = :CNST-M-RECSTS-VALID END-EXEC MOVE SQLCODE TO SQL-ERR-CODE IF NOT SQL-C-NORMAL THEN DISPLAY 'WK-EFFDAT NOT FOUND!' MOVE '1' TO WK-ERR-FLAG display 'curcde' CBH-CURCDE display 'irtkde' CBH-CINRAT display 'effdat' CBH-ERYDAT GO TO 5106-EXIT END-IF EXEC SQL SELECT MAX(IRTAMT) INTO :WK-IRTAMT FROM ACTIRT WHERE CURCDE = :CBH-CURCDE AND IRTKDE = :CBH-CINRAT AND IRTAMT <= :CBH-BALLIM AND EFFDAT = :WK-EFFDAT AND RECSTS = :CNST-M-RECSTS-VALID END-EXEC MOVE SQLCODE TO SQL-ERR-CODE IF NOT SQL-C-NORMAL THEN DISPLAY 'WK-IRTAMT NOT FOUND!' MOVE '1' TO WK-ERR-FLAG GO TO 5106-EXIT END-IF EXEC SQL SELECT IRTVAL INTO :IRT-IRTVAL FROM ACTIRT WHERE CURCDE = :CBH-CURCDE AND IRTKDE = :CBH-CINRAT AND IRTAMT = :WK-IRTAMT AND EFFDAT = :WK-EFFDAT AND RECSTS = :CNST-M-RECSTS-VALID END-EXEC MOVE SQLCODE TO SQL-ERR-CODE IF NOT SQL-C-NORMAL THEN IF SQL-C-RECORD-NOT-FOUND THEN DISPLAY 'IRT-IRTVAL NOT FOUND!' MOVE '1' TO WK-ERR-FLAG GO TO 5106-EXIT ELSE GO TO ERRCHK END-IF END-IF EXEC SQL SELECT INTDAY INTO :CCY-INTDAY FROM ACTCCY WHERE CURCDE = :CBH-CURCDE AND RECSTS = :CNST-M-RECSTS-VALID END-EXEC MOVE SQLCODE TO SQL-ERR-CODE IF NOT SQL-C-NORMAL THEN IF SQL-C-RECORD-NOT-FOUND THEN DISPLAY 'CURCDE NOT FOUND' MOVE '1' TO WK-ERR-FLAG GO TO 5106-EXIT ELSE GO TO ERRCHK END-IF END-IF MOVE CCY-INTDAY TO WK-DITCST COMPUTE WK-IRTVAL = IRT-IRTVAL / WK-DITCST / 100 COMPUTE WK-CRATSF = CBH-CRATSF / WK-DITCST / 100 COMPUTE WK-NXTVAL3 = WK-IRTVAL + WK-CRATSF ELSE IF CBH-CRATSF NOT = 0 THEN EXEC SQL SELECT INTDAY INTO :CCY-INTDAY FROM ACTCCY WHERE CURCDE = :CBH-CURCDE AND RECSTS = :CNST-M-RECSTS-VALID END-EXEC MOVE SQLCODE TO SQL-ERR-CODE IF NOT SQL-C-NORMAL THEN IF SQL-C-RECORD-NOT-FOUND THEN DISPLAY 'CURCDE NOT FOUND' MOVE '1' TO WK-ERR-FLAG GO TO 5106-EXIT ELSE GO TO ERRCHK END-IF END-IF MOVE CCY-INTDAY TO WK-DITCST COMPUTE WK-CRATSF = CBH-CRATSF / WK-DITCST / 100 MOVE WK-CRATSF TO WK-NXTVAL3 ELSE MOVE 0 TO WK-NXTVAL3020323* IF BAL-INTBAL > 0020323* THEN020323* DISPLAY 'CR-INTBAL <> 0 CINRAT NOT FOUND'020323* MOVE '1' TO WK-ERR-FLAG020323* GO TO 5106-EXIT020323* END-IF END-IF END-IF. 5106-EXIT. EXIT. 5107-SEL-ACTCBH. EXEC SQL SELECT MAX(ERYDAT) INTO :WK-CBH-ERYDAT FROM ACTCBH WHERE ORGIDT = :BAL-ORGIDT AND CUSIDT = :BAL-CUSIDT AND APCODE = :BAL-APCODE AND CURCDE = :BAL-CURCDE AND ERYDAT <= :BAL-INTDAT AND RECSTS = :CNST-M-RECSTS-VALID END-EXEC. MOVE SQLCODE TO SQL-ERR-CODE IF NOT SQL-C-NORMAL THEN021112* DISPLAY 'THIS ACC NOT IS XIEDING ACCOUNT' MOVE '0' TO WK-ACC-FLAG ELSE EXEC SQL SELECT ERYDAT, BALLIM, DINRAT, CINRAT, DRATSF, CRATSF, CURCDE INTO :CBH-ERYDAT, :CBH-BALLIM, :CBH-DINRAT, :CBH-CINRAT, :CBH-DRATSF, :CBH-CRATSF, :CBH-CURCDE FROM ACTCBH WHERE ORGIDT = :BAL-ORGIDT AND CUSIDT = :BAL-CUSIDT AND APCODE = :BAL-APCODE AND CURCDE = :BAL-CURCDE AND ERYDAT = :WK-CBH-ERYDAT AND RECSTS = :CNST-M-RECSTS-VALID END-EXEC MOVE SQLCODE TO SQL-ERR-CODE IF NOT SQL-C-NORMAL THEN DISPLAY 'READ ACTCBH ERR!' GO TO ERRCHK ELSE MOVE '1' TO WK-ACC-FLAG END-IF END-IF. 5107-EXIT. EXIT. 5200-COMM-PROC. MOVE '/5200-COMM-PROC/' TO WK-PARA.021112 display 'wk-err-flag='wk-err-flag. IF WK-ERR-FLAG = '0' THEN EXEC SQL INSERT INTO ACTLOG ( JOBNAM, ORGIDT ) VALUES ( 'BCB8311', :OLD-ORGIDT ) END-EXEC MOVE SQLCODE TO SQL-ERR-CODE IF NOT SQL-C-NORMAL THEN display 'inser actlog err!' PERFORM 5300-ROLL-PROC THRU 5300-EXIT MOVE '1' TO WK-ERR-ALL-FLAG ELSE EXEC SQL COMMIT END-EXEC END-IF ELSE MOVE '1' TO WK-ERR-ALL-FLAG PERFORM 5300-ROLL-PROC THRU 5300-EXIT END-IF. 5200-EXIT. EXIT. 5300-ROLL-PROC. MOVE '/5300-ROLL-PROC/' TO WK-PARA. EXEC SQL ROLLBACK END-EXEC. MOVE '0' TO WK-ERR-FLAG. 5300-EXIT. EXIT. 8000-TXN-END-RTN. MOVE '/8000-TXN-END-RTN/' TO WK-PARA. IF WK-ERR-ALL-FLAG NOT = '0' THEN MOVE 8 TO RETURN-CODE ELSE MOVE 0 TO RETURN-CODE END-IF. 8000-EXIT. EXIT. ERRCHK. DISPLAY ' ERR ON:' WK-PARA. DISPLAY 'SQLCODE=' SQLCODE. EXEC SQL ROLLBACK END-EXEC. MOVE 08 TO RETURN-CODE. STOP RUN.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -