Advertisement
Guest User

Untitled

a guest
Mar 15th, 2019
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
COBOL 8.12 KB | None | 0 0
  1.        IDENTIFICATION DIVISION.
  2.        PROGRAM-ID. DCI9APGE.
  3.        AUTHOR. JOREE MIRANDA.
  4.  
  5.        ENVIRONMENT DIVISION.
  6.        CONFIGURATION SECTION.
  7.        DATA DIVISION.
  8.        WORKING-STORAGE SECTION.
  9.  
  10.        01 WS-STUFILE-RECORD.
  11.           05 WS-STU-KEY.
  12.               10 WS-STU-NUMBER        PIC X(7).
  13.               10 WS-STU-NUMBERL       COMP PIC S9(4).
  14.           05 WS-STU-NAME              PIC X(20).
  15.           05 WS-STU-NAMEL             COMP PIC S9(4).
  16.           05 WS-STU-COURSE-1          PIC X(8).
  17.           05 WS-STU-COURSE-1L         COMP PIC S9(4).
  18.           05 WS-STU-COURSE-2          PIC X(8).
  19.           05 WS-STU-COURSE-2L         COMP PIC S9(4).
  20.           05 WS-STU-COURSE-3          PIC X(8).
  21.           05 WS-STU-COURSE-3L         COMP PIC S9(4).
  22.           05 WS-STU-COURSE-4          PIC X(8).
  23.           05 WS-STU-COURSE-4L         COMP PIC S9(4).
  24.           05 WS-STU-COURSE-5          PIC X(8).
  25.           05 WS-STU-COURSE-5L         COMP PIC S9(4).
  26.           05 WS-STU-ADDRESS-1         PIC X(20).
  27.           05 WS-STU-ADDRESS-1L        COMP PIC S9(4).
  28.           05 WS-STU-ADDRESS-2         PIC X(20).
  29.           05 WS-STU-ADDRESS-2L        COMP PIC S9(4).
  30.           05 WS-STU-ADDRESS-3         PIC X(20).
  31.           05 WS-STU-ADDRESS-3L        COMP PIC S9(4).
  32.           05 WS-STU-POSTAL-1          PIC X(3).
  33.           05 WS-STU-POSTAL-2          PIC X(3).
  34.           05 WS-STU-PHONE-1           PIC X(3).
  35.           05 WS-STU-PHONE-1L          COMP PIC S9(4).
  36.           05 WS-STU-PHONE-2           PIC X(3).
  37.           05 WS-STU-PHONE-2L          COMP PIC S9(4).
  38.           05 WS-STU-PHONE-3           PIC X(4).
  39.           05 WS-STU-PHONE-3L          COMP PIC S9(4).
  40.           05 WS-MESSAGE               PIC X(60).
  41.  
  42.        LINKAGE SECTION.
  43.  
  44.        01 DFHCOMMAREA PIC X(256).
  45.  
  46.        PROCEDURE DIVISION.
  47.  
  48.        100-MAIN-LOGIC.
  49.       * TODO: IMPLEMENT VALIDATION LOGIC
  50.            MOVE DFHCOMMAREA TO WS-STUFILE-RECORD.
  51.  
  52.            IF (WS-STU-NUMBER IS NOT NUMERIC OR WS-STU-NUMBERL < 7)
  53.               GO TO 400-INVALID-STUDENT
  54.            END-IF.
  55.  
  56.            IF (WS-STU-COURSE-1L = 0)
  57.                 IF (WS-STU-COURSE-2L = 0)
  58.                     IF (WS-STU-COURSE-3L = 0)
  59.                         IF (WS-STU-COURSE-4L = 0)
  60.                             IF (WS-STU-COURSE-5L = 0)
  61.                                 GO TO 510-EMPTY-CODE
  62.                             END-IF
  63.                         END-IF
  64.                     END-IF
  65.                 END-IF
  66.            END-IF.
  67.  
  68.            IF (WS-STU-COURSE-1L > 0)
  69.                  IF (WS-STU-COURSE-1(1:4) IS NOT ALPHABETIC OR
  70.                      WS-STU-COURSE-1(5:4) IS NOT NUMERIC)
  71.                       GO TO 501-INVALID-CODE
  72.                  END-IF
  73.            END-IF.
  74.  
  75.            IF (WS-STU-COURSE-2L > 0)
  76.                 IF (WS-STU-COURSE-2(1:4) IS NOT ALPHABETIC OR
  77.                     WS-STU-COURSE-2(5:4) IS NOT NUMERIC)
  78.                       GO TO 502-INVALID-CODE
  79.                 END-IF
  80.            END-IF.
  81.  
  82.            IF (WS-STU-COURSE-3L > 0)
  83.                 IF (WS-STU-COURSE-3(1:4) IS NOT ALPHABETIC OR
  84.                     WS-STU-COURSE-3(5:4) IS NOT NUMERIC)
  85.                       GO TO 503-INVALID-CODE
  86.                 END-IF
  87.            END-IF.
  88.  
  89.            IF (WS-STU-COURSE-4L > 0)
  90.                 IF (WS-STU-COURSE-4(1:4) IS NOT ALPHABETIC OR
  91.                     WS-STU-COURSE-4(5:4) IS NOT NUMERIC)
  92.                      GO TO 504-INVALID-CODE
  93.                 END-IF
  94.            END-IF.
  95.  
  96.            IF (WS-STU-COURSE-5L > 0)
  97.                 IF (WS-STU-COURSE-5(1:4) IS NOT ALPHABETIC OR
  98.                     WS-STU-COURSE-5(5:4) IS NOT NUMERIC)
  99.                      GO TO 505-INVALID-CODE
  100.                 END-IF
  101.            END-IF.
  102.  
  103.            IF (WS-STU-NAMEL = 0)
  104.               GO TO 450-INVALID-NAME
  105.            END-IF.
  106.  
  107.            IF (WS-STU-ADDRESS-1L = 0)
  108.               GO TO 601-INVALID-ADDRESS
  109.            END-IF.
  110.  
  111.            IF (WS-STU-ADDRESS-2L = 0)
  112.               GO TO 602-INVALID-ADDRESS
  113.            END-IF.
  114.  
  115.  
  116.            IF (WS-STU-POSTAL-1(1:1) IS NOT ALPHABETIC)
  117.                 GO TO 700-INVALID-POSTAL-CODE
  118.            ELSE
  119.                 IF (WS-STU-POSTAL-1(2:1) IS NOT NUMERIC)
  120.                     GO TO 700-INVALID-POSTAL-CODE
  121.                 ELSE
  122.                     IF (WS-STU-POSTAL-1(3:1) IS NOT ALPHABETIC)
  123.                         GO TO 700-INVALID-POSTAL-CODE
  124.                     END-IF
  125.                 END-IF
  126.            END-IF.
  127.  
  128.            IF (WS-STU-POSTAL-2(1:1) IS NOT NUMERIC)
  129.                 GO TO 700-INVALID-POSTAL-CODE
  130.            ELSE
  131.                 IF (WS-STU-POSTAL-2(2:1) IS NOT ALPHABETIC)
  132.                     GO TO 700-INVALID-POSTAL-CODE
  133.                 ELSE
  134.                     IF (WS-STU-POSTAL-2(3:1) IS NOT NUMERIC)
  135.                         GO TO 700-INVALID-POSTAL-CODE
  136.                     END-IF
  137.                 END-IF
  138.            END-IF.
  139.  
  140.            IF (WS-STU-PHONE-1 IS NOT NUMERIC
  141.                 OR WS-STU-PHONE-2 IS NOT NUMERIC
  142.                 OR WS-STU-PHONE-3 IS NOT NUMERIC)
  143.               GO TO 550-INVALID-PHONE
  144.            END-IF.
  145.  
  146.            IF (WS-STU-PHONE-1L < 3 OR WS-STU-PHONE-2L < 3
  147.                 OR WS-STU-PHONE-3L < 3)
  148.               GO TO 550-INVALID-PHONE
  149.            END-IF.
  150.  
  151.            MOVE SPACES TO WS-MESSAGE.
  152.            MOVE WS-STUFILE-RECORD TO DFHCOMMAREA.
  153.            EXEC CICS RETURN END-EXEC.
  154.  
  155.        400-INVALID-STUDENT.
  156.            MOVE 'INVALID STUDENT NUMBER' TO WS-MESSAGE.
  157.            MOVE WS-STUFILE-RECORD TO DFHCOMMAREA.
  158.            EXEC CICS RETURN
  159.                 TRANSID('I9A2')
  160.            END-EXEC.
  161.  
  162.        450-INVALID-NAME.
  163.            MOVE 'NAME MUST BE ENTERED' TO WS-MESSAGE.
  164.            MOVE WS-STUFILE-RECORD TO DFHCOMMAREA.
  165.            EXEC CICS RETURN
  166.                 TRANSID('I9A2')
  167.            END-EXEC.
  168.  
  169.        501-INVALID-CODE.
  170.            MOVE '1ST COURSE CODE MUST BE XXXX9999 FORMAT' TO WS-MESSAGE.
  171.            MOVE WS-STUFILE-RECORD TO DFHCOMMAREA.
  172.  
  173.            EXEC CICS RETURN
  174.                 TRANSID('I9A2')
  175.            END-EXEC.
  176.  
  177.        502-INVALID-CODE.
  178.            MOVE '2ND COURSE CODE MUST BE XXXX9999 FORMAT' TO WS-MESSAGE.
  179.            MOVE WS-STUFILE-RECORD TO DFHCOMMAREA.
  180.  
  181.            EXEC CICS RETURN
  182.                 TRANSID('I9A2')
  183.            END-EXEC.
  184.  
  185.        503-INVALID-CODE.
  186.            MOVE '3RD COURSE CODE MUST BE XXXX9999 FORMAT' TO WS-MESSAGE.
  187.            MOVE WS-STUFILE-RECORD TO DFHCOMMAREA.
  188.  
  189.            EXEC CICS RETURN
  190.                 TRANSID('I9A2')
  191.            END-EXEC.
  192.  
  193.        504-INVALID-CODE.
  194.            MOVE '4TH COURSE CODE MUST BE XXXX9999 FORMAT' TO WS-MESSAGE.
  195.            MOVE WS-STUFILE-RECORD TO DFHCOMMAREA.
  196.  
  197.            EXEC CICS RETURN
  198.                 TRANSID('I9A2')
  199.            END-EXEC.
  200.  
  201.        505-INVALID-CODE.
  202.            MOVE '5TH COURSE CODE MUST BE XXXX9999 FORMAT' TO WS-MESSAGE.
  203.            MOVE WS-STUFILE-RECORD TO DFHCOMMAREA.
  204.  
  205.            EXEC CICS RETURN
  206.                 TRANSID('I9A2')
  207.            END-EXEC.
  208.  
  209.        510-EMPTY-CODE.
  210.            MOVE 'YOU MUST PROVIDE A COURSE CODE' TO WS-MESSAGE.
  211.            MOVE WS-STUFILE-RECORD TO DFHCOMMAREA.
  212.            EXEC CICS RETURN
  213.                 TRANSID('I9A2')
  214.            END-EXEC.
  215.  
  216.        550-INVALID-PHONE.
  217.            MOVE 'NUMBER MUST BE 999 999 9999 FORMAT' TO WS-MESSAGE.
  218.            MOVE WS-STUFILE-RECORD TO DFHCOMMAREA.
  219.            EXEC CICS RETURN
  220.                 TRANSID('I9A2')
  221.            END-EXEC.
  222.  
  223.        601-INVALID-ADDRESS.
  224.            MOVE '1ST ADDRESS MUST BE ENTERED' TO WS-MESSAGE.
  225.            MOVE WS-STUFILE-RECORD TO DFHCOMMAREA.
  226.            EXEC CICS RETURN
  227.                 TRANSID('I9A2')
  228.            END-EXEC.
  229.  
  230.        602-INVALID-ADDRESS.
  231.            MOVE '2ND ADDRESS MUST BE ENTERED' TO WS-MESSAGE.
  232.            MOVE WS-STUFILE-RECORD TO DFHCOMMAREA.
  233.            EXEC CICS RETURN
  234.                 TRANSID('I9A2')
  235.            END-EXEC.
  236.  
  237.        700-INVALID-POSTAL-CODE.
  238.            MOVE 'POSTAL CODE MUST BE X9X 9X9 FORMAT' TO WS-MESSAGE.
  239.            MOVE WS-STUFILE-RECORD TO DFHCOMMAREA.
  240.            EXEC CICS RETURN
  241.                 TRANSID('I9A2')
  242.            END-EXEC.
  243.  
  244.  
  245.  
  246.        END PROGRAM DCI9APGE.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement