IDENTIFICATION DIVISION. PROGRAM-ID. CANCELLED. AUTHOR. MIKE GALLANT. * This program will set a Customer's account Status to Cancelled or Stolen * at the users request. If the customer wants their account cancelled and * have all future transactions disabled, then set Account Status to cancelled. * If a customer is reporting their card missing or stolen, set Account Status to stolen ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. ALPHA. OBJECT-COMPUTER. ALPHA. 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". * Headings used for this program 01 HEADING1 PIC X(28) VALUE "SEARTON'S CHARGE CARD SYSTEM". 01 HEADING2 PIC X(20) VALUE "CANCELLATION REQUEST". 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:". * Fields that will displayed on the screen in a special format 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). * Tests for leading spaces and junk characters 01 V-FIELDS. 05 V-TEST-FIELD PIC X(18). * Used to accept input from operator or display output on screen 01 OUTPUT-FIELDS. 05 O-CURRENT-BALANCE PIC $$$,$$$,$$$.99. 05 O-MIN-PAY-DUE PIC $$$,$$$,$$$.99. 05 O-ACTUAL-CRD-LIMIT PIC $$$,$$$,$$$.99. 05 O-CREDIT-LIMIT PIC $$,$$$,$$$,$$$. 05 O-LANGUAGE-CODE PIC X(07). 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. 15 W-AREA-CODE1 PIC X. 15 W-AREA-CODE2 PIC X. 15 W-AREA-CODE3 PIC X. 10 W-EXTENSION. 15 W-EXTENSION1 PIC X. 15 W-EXTENSION2 PIC X. 15 W-EXTENSION3 PIC X. 10 W-NUMBER. 15 W-NUMBER1 PIC X. 15 W-NUMBER2 PIC X. 15 W-NUMBER3 PIC X. 15 W-NUMBER4 PIC X. 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. 05 O-STATUS PIC X(09). * Used to convert Lower Case Letters to Upper-Case 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):". *************************************************************************** * Accept-Status - Used to accept that card is (S)tolen or (C)ancelled from op erator * T-To-Float - Used to convert a Integer to a Float for screen display * Stopper - Used to pause the screen to allow user to view messages * Space-Count - Used to clear the screen * S-Account-Id - Used to accept Account Id for search on file *************************************************************************** 01 MISC-FIELDS. 05 ACCEPT-STATUS PIC X VALUE SPACE. 05 T-TO-FLOAT PIC S9(09)V99. 05 STOPPER PIC X(02) VALUE SPACES. 05 SPACE-COUNT PIC 9(02) VALUE ZEROS. 05 S-ACCOUNT-ID PIC X(10). 01 FLAGZ. 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". 01 WROTE-MESSAGE PIC X(57) VALUE "Name(s) and Address have been written to the Client File.". COPY "WORKDATE.LIB". PROCEDURE DIVISION. MAINLINE. PERFORM INITIALIZATION. PERFORM MAIN-PROGRAM UNTIL THE-END. 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. PERFORM GET-TIME-DATE. PERFORM CLEAR-THE-SCREEN. PERFORM GET-ACCOUNT-ID. PERFORM CLEAR-20. GET-ACCOUNT-ID. DISPLAY "Enter Account Id:" LINE 12 COLUMN 32. DISPLAY "Type to exit" LINE 22 COLUMN 30. ACCEPT S-ACCOUNT-ID LINE 12 COLUMN 50 PROTECTED DEFAULT SPACES. IF S-ACCOUNT-ID = SPACES THEN MOVE "Y" TO EXIT-FLAG ELSE DISPLAY SPACES LINE 22 ERASE TO END OF SCREEN MOVE S-ACCOUNT-ID TO IDX-ACCOUNT-ID READ CLIENT-FILE INTO CLIENT-READ-IN INVALID KEY PERFORM ACCOUNT-DOES-NOT-EXIST * If Account Is found on file, then Ask Operator if Account is correct, * find out what Status they want to set, and verify of they want to make * the change. If they verify the change, change the status and update the r ecord NOT INVALID KEY DISPLAY SPACES LINE 23 ERASE TO END OF LINE MOVE "N" TO INVALID-FLAG PERFORM DISPLAY-TITLES PERFORM DISPLAY-INFO PERFORM GET-VERIFICATION PERFORM CANCEL-THIS-ACCOUNT IF OKAY THEN MOVE "N" TO GO-FLAG PERFORM SELECT-STATUS-CHANGE UNTIL OKAY PERFORM PROCESS-CHANGES END-IF 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. GET-VERIFICATION. DISPLAY "" LINE 20 COLUMN 10 WITH BELL WITH BLINKING REVERSED. SELECT-STATUS-CHANGE. MOVE "Y" TO GO-FLAG. DISPLAY SPACES LINE 20 ERASE TO END OF LINE. DISPLAY "(C)ancel Account or Report it (S)tolen: " LINE 21 COLUMN 20. ACCEPT ACCEPT-STATUS LINE 21 COLUMN 60 PROTECTED. INSPECT ACCEPT-STATUS CONVERTING LOWER-CASE TO UPPER-CASE. EVALUATE ACCEPT-STATUS WHEN "C" MOVE "C" TO ACCOUNT-STATUS WHEN "S" MOVE "S" TO ACCOUNT-STATUS WHEN OTHER MOVE "N" TO GO-FLAG END-EVALUATE. 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. DISPLAY STREET LINE 7 COLUMN 59. DISPLAY CITY LINE 8 COLUMN 59. DISPLAY PROVINCE LINE 9 COLUMN 59. COPY "EVAL_STATUS.LIB". DISPLAY O-STATUS LINE 17 COLUMN 66. COPY "EVAL_LANG.LIB". DISPLAY O-LANGUAGE-CODE LINE 12 COLUMN 66. DISPLAY S-ACCOUNT-ID LINE 16 COLUMN 60. MOVE CREDIT-LIMIT TO O-CREDIT-LIMIT. DISPLAY O-CREDIT-LIMIT LINE 13 COLUMN 66. 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. PROCESS-CHANGES. DISPLAY SPACES LINE 21 ERASE TO END OF LINE. MOVE "N" TO WRITE-FLAG. DISPLAY "Are You Sure (Y/N)" LINE 21 COLUMN 30. ACCEPT WRITE-FLAG LINE 21 COLUMN 49 PROTECTED 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. CANCEL-THIS-ACCOUNT. MOVE "N" TO GO-FLAG. DISPLAY "Cancel This Account (Y/N)" LINE 21 COLUMN 20. ACCEPT WRITE-FLAG LINE 21 COLUMN 46 PROTECTED DEFAULT "N". INSPECT WRITE-FLAG CONVERTING LOWER-CASE TO UPPER-CASE. IF WRITE-CHANGES THEN MOVE "Y" TO GO-FLAG ELSE MOVE "N" TO GO-FLAG 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". COPY "CLEAR-20.LIB". TERMINATION. DISPLAY SPACES LINE 20 ERASE TO END OF SCREEN. DISPLAY "" LINE 23 COLUMN 30. ACCEPT STOPPER LINE 23 COLUMN 50. CLOSE CLIENT-FILE.