puffy310 commited on
Commit
e975884
·
verified ·
1 Parent(s): 9248d35

Update cobol/loan.cbl

Browse files
Files changed (1) hide show
  1. 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.dat"
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
- PROCEDURE DIVISION.
 
 
 
 
28
  MAIN-LOGIC.
29
- OPEN INPUT LOAN-FILE
30
- DISPLAY "Enter Account Number to Check Loan Status:"
31
- ACCEPT ACCOUNT-NUMBER
 
 
 
 
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
- IF LN-ACCT = ACCOUNT-NUMBER
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
- STOP RUN.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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)