⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bcb8311.pco

📁 行业应用源码 行业应用源码 行业应用源码 行业应用源码 行业应用源码 行业应用源码
💻 PCO
📖 第 1 页 / 共 4 页
字号:
                         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 + -