📄 bcb8311.pco
字号:
AND CURCDE = :BAL-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 'SELECT ACTCUT ERR!' MOVE '1' TO WK-ERR-FLAG GO TO 5100-EXIT ELSE GO TO ERRCHK END-IF END-IF END-IF END-IF. PERFORM 5101-COMPUTE-ACCM THRU 5101-EXIT. MOVE BAL-ORGIDT TO OLD-ORGIDT. MOVE BAL-CUSIDT TO OLD-CUSIDT. MOVE BAL-APCODE TO OLD-APCODE. MOVE BAL-CURCDE TO OLD-CURCDE. MOVE BAL-INTBAL TO OLD-INTBAL. MOVE WK-NXTVAL1 TO OLD-NXTVAL1. MOVE WK-NXTVAL2 TO OLD-NXTVAL2. MOVE WK-NXTVAL3 TO OLD-NXTVAL3. 5100-EXIT. EXIT. ******************************************************************* **5101-COMPUTE-ACCM计算帐户从上次转息日到当前工作日的利息 *** ******************************************************************* 5101-COMPUTE-ACCM. MOVE '/5101-COMPUTE-ACCM/' TO WK-PARA. IF OLD-INTDAT NOT = SPACES THEN EXEC SQL SELECT TO_DATE(:BAL-INTDAT,'YYYY-MM-DD') - TO_DATE(:WK-BASE-DATE,'YYYY-MM-DD'), TO_DATE(:OLD-INTDAT,'YYYY-MM-DD') - TO_DATE(:WK-BASE-DATE,'YYYY-MM-DD') INTO :WK-INTDAT-DAYS, :WK-OLD-DAYS FROM ACTSCT WHERE SCTNUM = :CNST-M-SCTNUM-NORMAL 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 'read actsct err!' MOVE '1' TO WK-ERR-FLAG GO TO 5101-EXIT ELSE GO TO ERRCHK END-IF END-IF COMPUTE WK-DAYS = WK-INTDAT-DAYS - WK-OLD-DAYS - 1 ELSE MOVE 0 TO WK-DAYS END-IF. IF BAL-INTBAL < 0 THEN IF OLD-INTDAT NOT = SPACES THEN IF OLD-INTBAL > 0 OR OLD-INTBAL = 0 THEN IF OLD-ACC-FLAG = '1' THEN IF OLD-ERYDAT NOT > OLD-INTDAT THEN IF OLD-INTBAL > OLD-BALLIM THEN COMPUTE WK-XIE-BAL = OLD-INTBAL - OLD-BALLIM COMPUTE WK-CR-ACCM1 = OLD-BALLIM * WK-DAYS COMPUTE WK-CR-ACCM2 = WK-XIE-BAL * WK-DAYS COMPUTE WK-CR-INT1 ROUNDED = WK-CR-ACCM1 * OLD-NXTVAL2 COMPUTE WK-CR-INT2 ROUNDED = WK-CR-ACCM2 * OLD-NXTVAL3 COMPUTE WK-CR-ALL-INT = WK-CR-ALL-INT + WK-CR-INT1 + WK-CR-INT2 ELSE COMPUTE WK-CR-ACCM = OLD-INTBAL * WK-DAYS COMPUTE WK-CR-INT ROUNDED = WK-CR-ACCM * OLD-NXTVAL2 COMPUTE WK-CR-ALL-INT = WK-CR-ALL-INT + WK-CR-INT END-IF ELSE COMPUTE WK-CR-ACCM = OLD-INTBAL * WK-DAYS COMPUTE WK-CR-INT ROUNDED = WK-CR-ACCM * OLD-NXTVAL2 COMPUTE WK-CR-ALL-INT = WK-CR-ALL-INT + WK-CR-INT END-IF ELSE COMPUTE WK-CR-ACCM = OLD-INTBAL * WK-DAYS COMPUTE WK-CR-INT ROUNDED = WK-CR-ACCM * OLD-NXTVAL2 COMPUTE WK-CR-ALL-INT = WK-CR-ALL-INT + WK-CR-INT END-IF ELSE COMPUTE WK-DR-ACCM = OLD-INTBAL * WK-DAYS COMPUTE WK-DR-INT ROUNDED = WK-DR-ACCM * OLD-NXTVAL1 COMPUTE WK-DR-ALL-INT = WK-DR-ALL-INT + WK-DR-INT END-IF END-IF MOVE 0 TO WK-DR-INT MOVE 0 TO WK-DR-ACCM MOVE 0 TO WK-CR-INT MOVE 0 TO WK-CR-INT1 MOVE 0 TO WK-CR-INT2 MOVE 0 TO WK-CR-ACCM MOVE 0 TO WK-CR-ACCM1 MOVE 0 TO WK-CR-ACCM2 MOVE 0 TO WK-XIE-BAL PERFORM 5103-GET-DINRAT THRU 5103-EXIT COMPUTE WK-DR-INT ROUNDED = BAL-INTBAL * WK-NXTVAL1 COMPUTE WK-DR-ALL-INT = WK-DR-ALL-INT + WK-DR-INT MOVE 0 TO WK-DR-INT ELSE IF BAL-INTBAL > 0 OR BAL-INTBAL = 0 THEN IF OLD-INTDAT NOT = SPACES THEN IF OLD-INTBAL < 0 THEN COMPUTE WK-DR-ACCM = OLD-INTBAL * WK-DAYS COMPUTE WK-DR-INT ROUNDED = WK-DR-ACCM * OLD-NXTVAL1 COMPUTE WK-DR-ALL-INT = WK-DR-ALL-INT + WK-DR-INT ELSE IF OLD-ACC-FLAG = '1' THEN IF OLD-ERYDAT NOT > OLD-INTDAT THEN IF OLD-INTBAL > OLD-BALLIM THEN COMPUTE WK-XIE-BAL = OLD-INTBAL - OLD-BALLIM COMPUTE WK-CR-ACCM1 = OLD-BALLIM * WK-DAYS COMPUTE WK-CR-ACCM2 = WK-XIE-BAL * WK-DAYS COMPUTE WK-CR-INT1 ROUNDED = WK-CR-ACCM1 * OLD-NXTVAL2 COMPUTE WK-CR-INT2 ROUNDED = WK-CR-ACCM2 * OLD-NXTVAL3 COMPUTE WK-CR-ALL-INT = WK-CR-ALL-INT + WK-CR-INT1 + WK-CR-INT2 ELSE COMPUTE WK-CR-ACCM = OLD-INTBAL * WK-DAYS COMPUTE WK-CR-INT ROUNDED = WK-CR-ACCM * OLD-NXTVAL2 COMPUTE WK-CR-ALL-INT = WK-CR-ALL-INT + WK-CR-INT END-IF ELSE COMPUTE WK-CR-ACCM = OLD-INTBAL * WK-DAYS COMPUTE WK-CR-INT ROUNDED = WK-CR-ACCM * OLD-NXTVAL2 COMPUTE WK-CR-ALL-INT = WK-CR-ALL-INT + WK-CR-INT END-IF ELSE COMPUTE WK-CR-ACCM = OLD-INTBAL * WK-DAYS COMPUTE WK-CR-INT ROUNDED = WK-CR-ACCM * OLD-NXTVAL2 COMPUTE WK-CR-ALL-INT = WK-CR-ALL-INT + WK-CR-INT END-IF END-IF END-IF MOVE 0 TO WK-DR-ACCM MOVE 0 TO WK-DR-INT MOVE 0 TO WK-CR-ACCM MOVE 0 TO WK-CR-ACCM1 MOVE 0 TO WK-CR-ACCM2 MOVE 0 TO WK-CR-INT MOVE 0 TO WK-CR-INT1 MOVE 0 TO WK-CR-INT2 MOVE 0 TO WK-XIE-BAL PERFORM 5104-GET-CINRAT THRU 5104-EXIT IF WK-ACC-FLAG = '1' THEN IF CBH-ERYDAT NOT > BAL-INTDAT THEN IF BAL-INTBAL > CBH-BALLIM THEN PERFORM 5106-GET-XIE-CINRAT THRU 5106-EXIT COMPUTE WK-XIE-BAL = BAL-INTBAL - CBH-BALLIM COMPUTE WK-CR-INT1 ROUNDED = CBH-BALLIM * WK-NXTVAL2 COMPUTE WK-CR-INT2 ROUNDED = WK-XIE-BAL * WK-NXTVAL3 COMPUTE WK-CR-ALL-INT = WK-CR-ALL-INT + WK-CR-INT1 + WK-CR-INT2 MOVE 0 TO WK-CR-INT1 MOVE 0 TO WK-CR-INT2 ELSE COMPUTE WK-CR-INT ROUNDED = BAL-INTBAL * WK-NXTVAL2 COMPUTE WK-CR-ALL-INT = WK-CR-ALL-INT + WK-CR-INT MOVE 0 TO WK-CR-INT END-IF ELSE COMPUTE WK-CR-INT ROUNDED = BAL-INTBAL * WK-NXTVAL2 COMPUTE WK-CR-ALL-INT = WK-CR-ALL-INT + WK-CR-INT MOVE 0 TO WK-CR-INT END-IF ELSE COMPUTE WK-CR-INT ROUNDED = BAL-INTBAL * WK-NXTVAL2 COMPUTE WK-CR-ALL-INT = WK-CR-ALL-INT + WK-CR-INT MOVE 0 TO WK-CR-INT END-IF END-IF END-IF. MOVE 0 TO WK-DAYS. MOVE BAL-INTDAT TO OLD-INTDAT. MOVE WK-ACC-FLAG TO OLD-ACC-FLAG. MOVE CBH-ERYDAT TO OLD-ERYDAT. MOVE CBH-BALLIM TO OLD-BALLIM. 5101-EXIT. EXIT. ******************************************************************* ***5102-COMPUTE-IRTVAL计算帐户应收应付利息 *** ******************************************************************* 5102-COMPUTE-IRTVAL. MOVE '/5102-COMPUTE-IRTVAL/' TO WK-PARA. IF OLD-INTDAT NOT = SCT-CRNDAT AND OLD-INTDAT NOT = SPACES THEN EXEC SQL SELECT TO_DATE(:SCT-CRNDAT,'YYYY-MM-DD') - TO_DATE(:WK-BASE-DATE,'YYYY-MM-DD'), TO_DATE(:OLD-INTDAT,'YYYY-MM-DD') - TO_DATE(:WK-BASE-DATE,'YYYY-MM-DD') INTO :WK-CRNDAT-DAYS, :WK-OLD-DAYS FROM ACTSCT WHERE SCTNUM = :CNST-M-SCTNUM-NORMAL 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 'read actsct err!' MOVE '1' TO WK-ERR-FLAG GO TO 5102-EXIT ELSE GO TO ERRCHK END-IF END-IF COMPUTE WK-DAYS = WK-CRNDAT-DAYS - WK-OLD-DAYS IF OLD-INTBAL < 0 THEN COMPUTE WK-DR-ACCM = OLD-INTBAL * WK-DAYS COMPUTE WK-DR-INT ROUNDED = WK-DR-ACCM * OLD-NXTVAL1 COMPUTE WK-DR-ALL-INT = WK-DR-ALL-INT + WK-DR-INT MOVE 0 TO WK-DR-ACCM MOVE 0 TO WK-DR-INT END-IF IF OLD-INTBAL > 0 OR OLD-INTBAL = 0 THEN IF OLD-ACC-FLAG = '1'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -