IDENTIFICATION DIVISION. PROGRAM-ID. CHANCRED. AUTHOR. MIKE GALLANT. * This program is very similar to APPLENTRY.COB. That is the program * that allows you to enter new credit card applicants. Please Refer to docum entation * in that program as putting it in this program would be superfluous. * This program performs the Change Portion of the Application Entry program. * It will allow you to makes changes to fields in the Client File. In * this program, however, you can change the Client's Credit Card Limit * which could not be done the Application Entry Program. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. ALPHA. OBJECT-COMPUTER. ALPHA. SPECIAL-NAMES. CLASS AN-NUMERIC IS " ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789". INPUT-OUTPUT SECTION. FILE-CONTROL. COPY "SELECT_CLIENT.LIB". DATA DIVISION. FILE SECTION. COPY "FD_CLIENT.LIB". WORKING-STORAGE SECTION. * This copy library is used to store a record that is read from the Client File COPY "CLIENTREADIN.LIB". 01 HEADING1 PIC X(28) VALUE "SEARTON'S CHARGE CARD SYSTEM". 01 HEADING2 PIC X(24) VALUE "CHANGE CLIENT SCREEN". 01 INFO1. 05 FILLER PIC X(20) VALUE "1. Client Last Name:". 05 FILLER PIC X(22) VALUE SPACES. 05 FILLER PIC X(10) VALUE "4. Street:". 01 INFO2. 05 FILLER PIC X(14) VALUE "2. First Name:". 05 FILLER PIC X(22) VALUE SPACES. 05 FILLER PIC X(08) VALUE "5. City:". 01 INFO3. 05 FILLER PIC X(11) VALUE "3. Initial:". 05 FILLER PIC X(22) VALUE SPACES. 05 FILLER PIC X(09) VALUE "6. Prov.:". 01 INFO4 PIC X(15) VALUE "7. Postal Code:". 01 INFO5 PIC X(14) VALUE "8. Home Phone:". 01 INFO6. 05 FILLER PIC X(14) VALUE "9. Work Phone:". 05 FILLER PIC X(28) VALUE SPACES. 05 FILLER PIC X(18) VALUE "11. Language Code:". 01 INFO7. 05 FILLER PIC X(11) VALUE "10. D.O.B.:". 05 FILLER PIC X(02) VALUE SPACES. 05 FILLER PIC X VALUE "/". 05 FILLER PIC X(03) VALUE " /". 01 INFO8. 05 FILLER PIC X(21) VALUE "12. Second Last Name:". 05 FILLER PIC X(21) VALUE SPACES. 05 FILLER PIC X(14) VALUE "Account Id:". 01 INFO9. 05 FILLER PIC X(15) VALUE "13. First Name:". 05 FILLER PIC X(21) VALUE SPACES. 05 FILLER PIC X(07) VALUE "Status:". 01 INFO10. 05 FILLER PIC X(12) VALUE "14. Initial:". 05 FILLER PIC X(21) VALUE SPACES. 05 FILLER PIC X(16) VALUE "Current Balance:". 01 INFO11 PIC X(17) VALUE "15. Credit Limit:". 01 INFO12 PIC X(12) VALUE "Payment Due:". 01 PRE-INFO1. 05 FILLER PIC X(11) VALUE "Account Id:". 01 TO-FILE-FIELDS. 05 F-DATE-OF-BIRTH PIC 9(08). 05 F-HOME-PHONE PIC 9(10). 05 F-WORK-PHONE PIC 9(10). 05 F-POSTAL-CODE PIC X(06). 01 V-FIELDS. 05 V-TEST-FIELD PIC X(18). 01 OUTPUT-FIELDS. 05 O-CURRENT-BALANCE PIC $$$,$$$,$$$.99. 05 O-MIN-PAY-DUE PIC $$$,$$$,$$$.99. 05 O-ACTUAL-CRD-LIMIT PIC S9(11). 05 S-CREDIT-LIMIT PIC $$,$$$,$$$,$$$. 05 O-CREDIT-LIMIT PIC S9(11). 88 A-VALID-CREDIT-LIMIT VALUES 50 THRU 500000. 05 OLD-CREDIT-LIMIT PIC S9(11). 05 O-LANG-CODE PIC X. 88 VALID-CODES VALUES "E" "F" "S". 05 O-PREF-LANGUAGE PIC X(10). 05 O-ACCOUNT-ID PIC 9(10). 05 O-CARDS-ISSUED PIC 9(01). 05 O-LAST-PAY-DATE PIC 9999/99/99. 05 O-DATE-OF-BIRTH. 10 BIRTH-YEAR PIC 9(04). 10 BIRTH-MONTH PIC 9(02). 10 BIRTH-DAY PIC 9(02). 05 O-STATEMENT-DAY PIC 9(02). 05 O-HOME-PHONE. 10 H-AREA-CODE PIC X(03). 10 H-EXTENSION PIC X(03). 10 H-NUMBER PIC X(04). 05 O-WORK-PHONE. 10 W-AREA-CODE PIC X(03). 10 W-EXTENSION PIC X(03). 10 W-NUMBER PIC X(04). 05 O-POSTAL-CODE. 10 POSTAL-ONE PIC X. 10 POSTAL-TWO PIC 9. 10 POSTAL-THREE PIC X. 10 POSTAL-FOUR PIC 9. 10 POSTAL-FIVE PIC X. 10 POSTAL-SIX PIC 9. 01 THE-ALPHABET. 05 LOWER-CASE PIC X(26) VALUE "qwertyuiopasdfghjklzxcvbnm". 05 UPPER-CASE PIC X(26) VALUE "QWERTYUIOPASDFGHJKLZXCVBNM". 01 PROMPT PIC X(09) VALUE "OK (Y/N):". 01 SPACE-CHECK PIC X(40) VALUE SPACES. 01 GET-POSTAL PIC X VALUE SPACE. 88 ATHRUZ VALUES "A" THRU "Z". 88 ZTHRU9 VALUES "0" THRU "9". 01 POSTAL-LINE PIC 9(02) VALUE ZEROES. 01 POSTAL-LINE2 PIC 9(02) VALUE ZEROES. 01 FIELD-TO-CHANGE PIC X(20) VALUE SPACES. 01 LEAP-YEAR-STUFF. 05 LEAP-YEAR PIC 9(02) VALUE ZEROES. 05 SPEC-LEAP-YEAR PIC 9(02) VALUE ZEROES. 01 FLAGZ. 05 OK-FLAG PIC X VALUE "N". 05 CHANGE-FLAG PIC X VALUE "Y". 88 NO-MORE-CHANGES VALUE "N". 05 GO-FLAG PIC X VALUE "Y". 88 OKAY VALUE "Y". 88 NOT-OKAY VALUE "N". 05 EXIT-FLAG PIC X VALUE "N". 88 THE-END VALUE "Y". 05 WRITE-FLAG PIC X VALUE "N". 88 WRITE-CHANGES VALUE "Y". 05 INVALID-FLAG PIC X VALUE "N". 88 A-MATCH VALUE "N". 88 NO-MATCH VALUE "Y". 05 JUNK-FLAG PIC X VALUE "N". 88 IT-IS-JUNK VALUE "Y". 88 NOT-JUNK VALUE "N". 01 WROTE-MESSAGE PIC X(57) VALUE "Name(s) and Address have been written to the Client File.". 01 STOPPER PIC X(02) VALUE SPACES. 01 EOF-FLAG PIC X(01) VALUE "N". 01 SPACE-COUNT PIC 9(02) VALUE ZEROS. 01 JUNK-COUNTER PIC 9(02) VALUE ZEROS. 01 S-ACCOUNT-ID PIC X(10). 01 O-STATUS PIC X(09). 01 DELAY COMP-1. 01 O-LANGUAGE-CODE PIC X(07). 01 T-TO-FLOAT PIC S9(09)V99. COPY "WORKDATE.LIB". PROCEDURE DIVISION. MAINLINE. PERFORM INITIALIZATION. PERFORM MAIN-PROGRAM UNTIL NOT-OKAY. PERFORM TERMINATION. STOP RUN. INITIALIZATION. OPEN I-O CLIENT-FILE. COPY "INITDATE.LIB". DISPLAY SPACES LINE 1 ERASE TO END OF SCREEN. DISPLAY HEADING1 LINE 3 COLUMN 30. DISPLAY HEADING2 LINE 5 COLUMN 31. DISPLAY PRE-INFO1 LINE 7 COLUMN 30. MAIN-PROGRAM. DISPLAY SPACES LINE 22 ERASE TO END OF LINE. MOVE "Y" TO GO-FLAG. MOVE "Y" TO CHANGE-FLAG. PERFORM GET-TIME-DATE. PERFORM CLEAR-THE-SCREEN. PERFORM GET-ACCOUNT-ID. MOVE S-ACCOUNT-ID TO IDX-ACCOUNT-ID. PERFORM CLEAR-20. IF A-MATCH THEN DISPLAY "Change Another Client (Y/N)" LINE 20 COLUMN 30 ACCEPT GO-FLAG LINE 20 COLUMN 59 PROTECTED DEFAULT "N" INSPECT GO-FLAG CONVERTING LOWER-CASE TO UPPER-CASE END-IF. GET-ACCOUNT-ID. DISPLAY "Enter Account Id:" LINE 12 COLUMN 32. ACCEPT S-ACCOUNT-ID LINE 12 COLUMN 50 PROTECTED DEFAULT SPACES. IF S-ACCOUNT-ID = SPACES THEN MOVE "Y" TO EXIT-FLAG ELSE MOVE S-ACCOUNT-ID TO IDX-ACCOUNT-ID READ CLIENT-FILE INTO CLIENT-READ-IN INVALID KEY PERFORM ACCOUNT-DOES-NOT-EXIST NOT INVALID KEY DISPLAY SPACES LINE 23 ERASE TO END OF LINE MOVE "N" TO INVALID-FLAG PERFORM DISPLAY-TITLES PERFORM DISPLAY-INFO PERFORM CHANGE-INFO UNTIL NO-MORE-CHANGES PERFORM PROCESS-CHANGES DISPLAY SPACES LINE 6 ERASE TO END OF SCREEN END-READ END-IF. ACCOUNT-DOES-NOT-EXIST. MOVE "Y" TO INVALID-FLAG. DISPLAY "Account ID Entered not found on file -- Please Re-enter" LINE 23 COLUMN 15. DISPLAY-TITLES. DISPLAY SPACES LINE 6 ERASE TO END OF SCREEN. DISPLAY INFO1 LINE 7 COLUMN 5. DISPLAY INFO2 LINE 8 COLUMN 11. DISPLAY INFO3 LINE 9 COLUMN 14. DISPLAY INFO4 LINE 10 COLUMN 47. DISPLAY INFO5 LINE 11 COLUMN 5. DISPLAY INFO6 LINE 12 COLUMN 5. DISPLAY INFO7 LINE 14 COLUMN 5. DISPLAY INFO8 LINE 16 COLUMN 5. DISPLAY INFO9 LINE 17 COLUMN 11. DISPLAY INFO10 LINE 18 COLUMN 14. DISPLAY INFO11 LINE 13 COLUMN 47. DISPLAY INFO12 LINE 15 COLUMN 47. PERFORM VARYING SPACE-COUNT FROM 11 BY 1 UNTIL SPACE-COUNT = 13 DISPLAY "(" LINE SPACE-COUNT COLUMN 21 DISPLAY ")" LINE SPACE-COUNT COLUMN 25 DISPLAY "-" LINE SPACE-COUNT COLUMN 30 END-PERFORM. DISPLAY "-" LINE 10 COLUMN 66. DISPLAY "/" LINE 14 COLUMN 22. DISPLAY "/" LINE 14 COLUMN 25. DISPLAY-INFO. DISPLAY PRIMARY-LAST-NAME LINE 7 COLUMN 27. DISPLAY PRIMARY-FIRST-NAME LINE 8 COLUMN 27. DISPLAY PRIMARY-MID-INIT LINE 9 COLUMN 27. DISPLAY SECOND-LAST-NAME LINE 16 COLUMN 27. DISPLAY SECOND-FIRST-NAME LINE 17 COLUMN 27. DISPLAY SECOND-MID-INIT LINE 18 COLUMN 27. MOVE HOME-PHONE TO F-HOME-PHONE. MOVE F-HOME-PHONE TO O-HOME-PHONE. DISPLAY H-AREA-CODE LINE 11 COLUMN 22. DISPLAY H-EXTENSION LINE 11 COLUMN 27. DISPLAY H-NUMBER LINE 11 COLUMN 31. MOVE WORK-PHONE TO F-WORK-PHONE. MOVE F-WORK-PHONE TO O-WORK-PHONE. DISPLAY W-AREA-CODE LINE 12 COLUMN 22. DISPLAY W-EXTENSION LINE 12 COLUMN 27. DISPLAY W-NUMBER LINE 12 COLUMN 31. MOVE DATE-OF-BIRTH TO F-DATE-OF-BIRTH. MOVE F-DATE-OF-BIRTH TO O-DATE-OF-BIRTH. DISPLAY BIRTH-YEAR LINE 14 COLUMN 18. DISPLAY BIRTH-MONTH LINE 14 COLUMN 23. DISPLAY BIRTH-DAY LINE 14 COLUMN 26. MOVE POSTAL-CODE TO O-POSTAL-CODE. DISPLAY POSTAL-ONE LINE 10 COLUMN 63. DISPLAY POSTAL-TWO LINE 10 COLUMN 64. DISPLAY POSTAL-THREE LINE 10 COLUMN 65. DISPLAY POSTAL-FOUR LINE 10 COLUMN 67. DISPLAY POSTAL-FIVE LINE 10 COLUMN 68. DISPLAY POSTAL-SIX LINE 10 COLUMN 69. COPY "EVAL_STATUS.LIB". DISPLAY O-STATUS LINE 17 COLUMN 66. DISPLAY STREET LINE 7 COLUMN 59. DISPLAY CITY LINE 8 COLUMN 59. DISPLAY PROVINCE LINE 9 COLUMN 59. COPY "EVAL_LANG.LIB". DISPLAY O-LANGUAGE-CODE LINE 12 COLUMN 66. DISPLAY S-ACCOUNT-ID LINE 16 COLUMN 60. MOVE CREDIT-LIMIT TO S-CREDIT-LIMIT. DISPLAY S-CREDIT-LIMIT LINE 13 COLUMN 66 WITH CONVERSION. MOVE CURRENT-BALANCE TO T-TO-FLOAT. COMPUTE T-TO-FLOAT = ((T-TO-FLOAT / 100) + 0.004). MOVE T-TO-FLOAT TO O-CURRENT-BALANCE. DISPLAY O-CURRENT-BALANCE LINE 18 COLUMN 66 WITH CONVERSION. MOVE MIN-PAY-DUE TO T-TO-FLOAT. COMPUTE T-TO-FLOAT = ((T-TO-FLOAT / 100) + 0.004). MOVE T-TO-FLOAT TO O-MIN-PAY-DUE. DISPLAY O-MIN-PAY-DUE LINE 15 COLUMN 66 WITH CONVERSION. PROCESS-CHANGES. MOVE "N" TO WRITE-FLAG. DISPLAY "Write Changes (Y/N)" LINE 21 COLUMN 30. ACCEPT WRITE-FLAG LINE 21 COLUMN 50 PROTECTED WITH NO BLANK DEFAULT "N". INSPECT WRITE-FLAG CONVERTING LOWER-CASE TO UPPER-CASE. IF WRITE-CHANGES THEN PERFORM WRITE-TO-FILE ELSE DISPLAY SPACES LINE 21 ERASE TO END OF LINE END-IF. WRITE-TO-FILE. REWRITE CLIENT-KEYS FROM CLIENT-READ-IN INVALID KEY DISPLAY "NO WRITE!!!" LINE 22 COLUMN 25. CLEAR-THE-SCREEN. PERFORM VARYING SPACE-COUNT FROM 27 BY 1 UNTIL SPACE-COUNT = 46 DISPLAY SPACES LINE 8 COLUMN SPACE-COUNT END-PERFORM. PERFORM VARYING SPACE-COUNT FROM 27 BY 1 UNTIL SPACE-COUNT = 43 DISPLAY SPACES LINE 7 COLUMN SPACE-COUNT END-PERFORM. PERFORM VARYING SPACE-COUNT FROM 27 BY 1 UNTIL SPACE-COUNT = 33 DISPLAY SPACES LINE 9 COLUMN SPACE-COUNT END-PERFORM. PERFORM VARYING SPACE-COUNT FROM 27 BY 1 UNTIL SPACE-COUNT = 49 DISPLAY SPACES LINE 17 COLUMN SPACE-COUNT END-PERFORM. PERFORM VARYING SPACE-COUNT FROM 27 BY 1 UNTIL SPACE-COUNT = 43 DISPLAY SPACES LINE 16 COLUMN SPACE-COUNT END-PERFORM. PERFORM VARYING SPACE-COUNT FROM 27 BY 1 UNTIL SPACE-COUNT = 33 DISPLAY SPACES LINE 18 COLUMN SPACE-COUNT END-PERFORM. PERFORM VARYING SPACE-COUNT FROM 7 BY 1 UNTIL SPACE-COUNT = 10 DISPLAY SPACES LINE SPACE-COUNT COLUMN 59 ERASE TO END OF LINE END-PERFORM. DISPLAY SPACES LINE 10 COLUMN 63 ERASE TO END OF LINE. PERFORM VARYING SPACE-COUNT FROM 17 BY 1 UNTIL SPACE-COUNT = 28 DISPLAY SPACES LINE 14 COLUMN SPACE-COUNT END-PERFORM. PERFORM VARYING SPACE-COUNT FROM 21 BY 1 UNTIL SPACE-COUNT = 36 DISPLAY SPACES LINE 11 COLUMN SPACE-COUNT END-PERFORM. PERFORM VARYING SPACE-COUNT FROM 21 BY 1 UNTIL SPACE-COUNT = 36 DISPLAY SPACES LINE 12 COLUMN SPACE-COUNT END-PERFORM. DISPLAY SPACES LINE 12 COLUMN 64 ERASE TO END OF LINE. COPY "TIMEDATE.LIB". BLANK-CHECK. IF SPACE-CHECK = SPACES THEN MOVE "N" TO GO-FLAG * DISPLAY "You must enter something in this field" LINE 22 COLUMN 30 ELSE MOVE "Y" TO GO-FLAG DISPLAY SPACES LINE 22 ERASE TO END OF LINE END-IF. MOVE SPACES TO SPACE-CHECK. CLEAR-OUTPUT-FIELDS. MOVE SPACES TO ACCOUNT-STATUS. MOVE ZEROES TO ISSUE-DATE. MOVE ZEROES TO EXPIRY-DATE. MOVE ZEROES TO CARDS-ISSUED. MOVE SPACES TO PRIMARY-FIRST-NAME. MOVE SPACES TO PRIMARY-LAST-NAME. MOVE SPACES TO PRIMARY-MID-INIT. MOVE SPACES TO SECOND-FIRST-NAME. MOVE SPACES TO SECOND-LAST-NAME. MOVE SPACES TO SECOND-MID-INIT. MOVE ZEROES TO STATEMENT-DAY. MOVE ZEROES TO PREV-BALANCE. MOVE ZEROES TO CURRENT-BALANCE. MOVE ZEROES TO TOTAL-PAYMENTS. MOVE ZEROES TO TOTAL-PURCHASES. MOVE ZEROES TO LAST-PAY-DATE. MOVE ZEROES TO LAST-PURCH-DATE. MOVE ZEROES TO MIN-PAY-DUE. MOVE ZEROES TO CREDIT-LIMIT. MOVE ZEROES TO ACTUAL-CRD-LIMIT. MOVE SPACES TO STREET. MOVE SPACES TO CITY. MOVE SPACES TO PROVINCE. MOVE SPACES TO POSTAL-ONE. MOVE ZEROES TO POSTAL-TWO. MOVE SPACES TO POSTAL-THREE. MOVE ZEROES TO POSTAL-FOUR. MOVE SPACES TO POSTAL-FIVE. MOVE ZEROES TO POSTAL-SIX. MOVE SPACES TO LANG-CODE. MOVE ZEROES TO LAST-CONTACT-DATE. MOVE ZEROES TO WORK-PHONE. MOVE ZEROES TO HOME-PHONE. MOVE ZEROES TO INTEREST-OWED. MOVE ZEROES TO DATE-OF-BIRTH. COPY "CLEAR-20.LIB". COPY "JUNK-CHECK.LIB". COPY "AN-JUNK-CHECK.LIB". COPY "PRIMARY-NAMES.LIB". COPY "SECOND-NAMES.LIB". COPY "ADDRESS-INFO.LIB". COPY "PHONE-NUMBERS.LIB". COPY "BIRTH-DAY.LIB". COPY "LANGUAGE-CODE.LIB". COPY "POSTAL-CODE.LIB". COPY "CREDIT-LIMIT.LIB". COPY "CHANGE-INFO.LIB". TERMINATION. DISPLAY SPACES LINE 23 ERASE TO END OF LINE. DISPLAY "" LINE 23 COLUMN 30. ACCEPT STOPPER LINE 23 COLUMN 50. CLOSE CLIENT-FILE.