Spaces:
Build error
Build error
Update cobol/loan.cbl
Browse files- cobol/loan.cbl +40 -21
cobol/loan.cbl
CHANGED
|
@@ -4,7 +4,7 @@
|
|
| 4 |
ENVIRONMENT DIVISION.
|
| 5 |
INPUT-OUTPUT SECTION.
|
| 6 |
FILE-CONTROL.
|
| 7 |
-
SELECT LOAN-FILE ASSIGN TO "data/loans.
|
| 8 |
ORGANIZATION IS LINE SEQUENTIAL.
|
| 9 |
|
| 10 |
DATA DIVISION.
|
|
@@ -12,37 +12,56 @@
|
|
| 12 |
FD LOAN-FILE
|
| 13 |
RECORDING MODE F
|
| 14 |
LABEL RECORDS ARE STANDARD.
|
| 15 |
-
01 LOAN-RECORD.
|
| 16 |
-
02 LN-ID PIC X(4).
|
| 17 |
-
02 LN-ACCT PIC 9(4).
|
| 18 |
-
02 LN-PRIN PIC 9(7)V99.
|
| 19 |
-
02 LN-RATE PIC 9V99.
|
| 20 |
-
02 LN-TERM PIC 9(2).
|
| 21 |
-
02 LN-STATUS PIC X(10).
|
| 22 |
|
| 23 |
WORKING-STORAGE SECTION.
|
| 24 |
-
01 ACCOUNT-NUMBER PIC 9(4).
|
| 25 |
01 EOF PIC X VALUE 'N'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
|
| 27 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
MAIN-LOGIC.
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
|
|
|
|
|
|
|
| 33 |
PERFORM UNTIL EOF = 'Y'
|
| 34 |
READ LOAN-FILE INTO LOAN-RECORD
|
| 35 |
AT END MOVE 'Y' TO EOF
|
| 36 |
NOT AT END
|
| 37 |
-
|
| 38 |
-
DISPLAY "Loan ID: ", LN-ID
|
| 39 |
-
DISPLAY "Amount: $", LN-PRIN
|
| 40 |
-
DISPLAY "Rate: ", LN-RATE "%"
|
| 41 |
-
DISPLAY "Term: ", LN-TERM, " months"
|
| 42 |
-
DISPLAY "Status: ", LN-STATUS
|
| 43 |
-
END-IF
|
| 44 |
END-READ
|
| 45 |
END-PERFORM
|
|
|
|
| 46 |
|
|
|
|
|
|
|
|
|
|
| 47 |
CLOSE LOAN-FILE
|
| 48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
ENVIRONMENT DIVISION.
|
| 5 |
INPUT-OUTPUT SECTION.
|
| 6 |
FILE-CONTROL.
|
| 7 |
+
SELECT LOAN-FILE ASSIGN TO "data/loans.csv"
|
| 8 |
ORGANIZATION IS LINE SEQUENTIAL.
|
| 9 |
|
| 10 |
DATA DIVISION.
|
|
|
|
| 12 |
FD LOAN-FILE
|
| 13 |
RECORDING MODE F
|
| 14 |
LABEL RECORDS ARE STANDARD.
|
| 15 |
+
01 LOAN-RECORD PIC X(1024).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
|
| 17 |
WORKING-STORAGE SECTION.
|
|
|
|
| 18 |
01 EOF PIC X VALUE 'N'.
|
| 19 |
+
01 WS-LOAN-ID PIC X(10).
|
| 20 |
+
01 WS-ACCOUNT-ID PIC 9(4).
|
| 21 |
+
01 WS-AMOUNT PIC 9(7)V99.
|
| 22 |
+
01 WS-RATE PIC 9V99.
|
| 23 |
+
01 WS-STATUS PIC X(20).
|
| 24 |
|
| 25 |
+
LINKAGE SECTION.
|
| 26 |
+
01 LS-ACTION PIC X(10).
|
| 27 |
+
01 LS-DATA PIC X(1024).
|
| 28 |
+
|
| 29 |
+
PROCEDURE DIVISION USING LS-ACTION LS-DATA.
|
| 30 |
MAIN-LOGIC.
|
| 31 |
+
EVALUATE LS-ACTION
|
| 32 |
+
WHEN "READ"
|
| 33 |
+
PERFORM READ-LOANS
|
| 34 |
+
WHEN "CREATE"
|
| 35 |
+
PERFORM CREATE-LOAN
|
| 36 |
+
END-EVALUATE
|
| 37 |
+
GOBACK.
|
| 38 |
|
| 39 |
+
READ-LOANS.
|
| 40 |
+
OPEN INPUT LOAN-FILE
|
| 41 |
PERFORM UNTIL EOF = 'Y'
|
| 42 |
READ LOAN-FILE INTO LOAN-RECORD
|
| 43 |
AT END MOVE 'Y' TO EOF
|
| 44 |
NOT AT END
|
| 45 |
+
DISPLAY LOAN-RECORD
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
END-READ
|
| 47 |
END-PERFORM
|
| 48 |
+
CLOSE LOAN-FILE.
|
| 49 |
|
| 50 |
+
CREATE-LOAN.
|
| 51 |
+
OPEN EXTEND LOAN-FILE
|
| 52 |
+
WRITE LOAN-RECORD FROM LS-DATA
|
| 53 |
CLOSE LOAN-FILE
|
| 54 |
+
|
| 55 |
+
UNSTRING LS-DATA DELIMITED BY "," INTO
|
| 56 |
+
WS-LOAN-ID,
|
| 57 |
+
WS-ACCOUNT-ID,
|
| 58 |
+
WS-AMOUNT,
|
| 59 |
+
WS-RATE,
|
| 60 |
+
WS-STATUS
|
| 61 |
+
END-UNSTRING
|
| 62 |
+
|
| 63 |
+
CALL "LOG-TRANSACTION" USING
|
| 64 |
+
FUNCTION TRIM("Loan created: " &
|
| 65 |
+
WS-LOAN-ID &
|
| 66 |
+
" for account " &
|
| 67 |
+
WS-ACCOUNT-ID)
|