Spaces:
Sleeping
Sleeping
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)
|