SSSSSSSSS         SSSSSSSSS      NNN         NNN   DDDDDDDDDDDD      PPPPPPPPPPPP
   SSSSSSSSS         SSSSSSSSS      NNN         NNN   DDDDDDDDDDDD      PPPPPPPPPPPP
   SSSSSSSSS         SSSSSSSSS      NNN         NNN   DDDDDDDDDDDD      PPPPPPPPPPPP
SSS         SSS   SSS         SSS   NNNNNN      NNN   DDD         DDD   PPP         PPP
SSS         SSS   SSS         SSS   NNNNNN      NNN   DDD         DDD   PPP         PPP
SSS         SSS   SSS         SSS   NNNNNN      NNN   DDD         DDD   PPP         PPP
SSS               SSS               NNNNNN      NNN   DDD         DDD   PPP         PPP
SSS               SSS               NNNNNN      NNN   DDD         DDD   PPP         PPP
SSS               SSS               NNNNNN      NNN   DDD         DDD   PPP         PPP
   SSSSSSSSS         SSSSSSSSS      NNN   NNN   NNN   DDD         DDD   PPPPPPPPPPPP
   SSSSSSSSS         SSSSSSSSS      NNN   NNN   NNN   DDD         DDD   PPPPPPPPPPPP
   SSSSSSSSS         SSSSSSSSS      NNN   NNN   NNN   DDD         DDD   PPPPPPPPPPPP
            SSS               SSS   NNN      NNNNNN   DDD         DDD   PPP
            SSS               SSS   NNN      NNNNNN   DDD         DDD   PPP
            SSS               SSS   NNN      NNNNNN   DDD         DDD   PPP
SSS         SSS   SSS         SSS   NNN      NNNNNN   DDD         DDD   PPP
SSS         SSS   SSS         SSS   NNN      NNNNNN   DDD         DDD   PPP
SSS         SSS   SSS         SSS   NNN      NNNNNN   DDD         DDD   PPP
   SSSSSSSSS         SSSSSSSSS      NNN         NNN   DDDDDDDDDDDD      PPP
   SSSSSSSSS         SSSSSSSSS      NNN         NNN   DDDDDDDDDDDD      PPP
   SSSSSSSSS         SSSSSSSSS      NNN         NNN   DDDDDDDDDDDD      PPP



BBBBBBBBBBBB         222222222         SSSSSSSSS
BBBBBBBBBBBB         222222222         SSSSSSSSS
BBBBBBBBBBBB         222222222         SSSSSSSSS
BBB         BBB   222         222   SSS         SSS
BBB         BBB   222         222   SSS         SSS
BBB         BBB   222         222   SSS         SSS
BBB         BBB   222         222   SSS
BBB         BBB   222         222   SSS
BBB         BBB   222         222   SSS
BBBBBBBBBBBB               222         SSSSSSSSS
BBBBBBBBBBBB               222         SSSSSSSSS
BBBBBBBBBBBB               222         SSSSSSSSS
BBB         BBB         222                     SSS
BBB         BBB         222                     SSS
BBB         BBB         222                     SSS
BBB         BBB      222            SSS         SSS
BBB         BBB      222            SSS         SSS
BBB         BBB      222            SSS         SSS
BBBBBBBBBBBB      222222222222222      SSSSSSSSS
BBBBBBBBBBBB      222222222222222      SSSSSSSSS
BBBBBBBBBBBB      222222222222222      SSSSSSSSS


[[[<<<<<<<<<<$$$$$$$$$$!!!!!!!!!!##########??????????==========0000000000**********&&&&&&&&&&
[[[<<<<<<<<<<$$$$$$$$$$!!!!!!!!!!##########??????????==========0000000000**********&&&&&&&&&&

JOB = PETE      Printed on 07-Sep-89 at 12:23    for User [1,11]
Copy     1 of     1    /Delete:  NO   File = DB4   :[6,10]SSNDP .B2S
Record type:  STREAM     Format type:  EMBEDDED

[[[<<<<<<<<<<$$$$$$$$$$!!!!!!!!!!##########??????????==========0000000000**********&&&&&&&&&&
[[[<<<<<<<<<<$$$$$$$$$$!!!!!!!!!!##########??????????==========0000000000**********&&&&&&&&&&

1       !---------------------------------------------------------------&
        !                                                               &
        !       Program : SSNDP.B2S                                     &
        !       Author  : PETE ISENSEE                                  &
        !       Created : 8-89                                          &
        !       Version : KMSB                                          &
        !       Language: BASIC-PLUS-2                                  &
        !       System  : PDP 11/70 RSTS-E                              &
        !                                                               &
        !       Description :                                           &
        !                                                               &
        !       SSNDP is used by the data processing department to      &
        !       process social security number change reqeusts.  This   &
        !       program reads the SSNREQ.DAT request file, displaying   &
        !       each record on the screen.  Each record may be pro-     &
        !       cessed, deleted or skipped.  Processing creates a con-  &
        !       trol file to be submitted to the FU15RQ program, which  &
        !       completes the ssn change.  Once a record is processed   &
        !       it is deleted from the SSNREQ.DAT file.  Skipped        &
        !       records remain on file and do not process.  When the    &
        !       program has completed, it requests that the command     &
        !       file SSNREQ (which submits the control file) be run.    &
        !                                                               &
        !       Note :                                                  &
        !                                                               &
        !       This program will not run if the SBBALC.DAT file does   &
        !       not exist.                                              &
        !       This program chjecks to insure that the old SSN number  &
        !       exists and that the new number does not exist.          &
        !                                                               &
        !       Modifications :                                         &
        !                                                               &

100     ON ERROR GO TO 19000                                            &

200     CRLF$ = CHR$(13%) + CHR$(10%)                                   &
      \ TRUE% = -1%                                                     &
      \ FALSE% = 0%                                                     &

400     MAP    (REQ)    OLD.SSN$        = 12% , ! Subscriber #          &
                        SUBSCR.NAME$    = 30% , ! Subscriber Name       &
                        CORRECT.SSN$    = 12% , ! Correct subscriber #  &
                        NEEDED.BY$      = 6%  , ! Required date         &
                        RETURN.TO$      = 23% , ! Return location       &
                        PRINT.AT$       = 14% , ! Printing location     &
                        INPUT.DATE$     = 9%  , ! Date requested        &
                        INPUT.TIME$     = 5%  , ! Time requested        &
                        USER.NBR$       = 3%  , ! User                  &
                        COMMENT$        = 65% , ! Comments              &

500     MAP    (SBM)    SBM.SUBID$=12%, !SUBSCRIBER ID-PRIMARY KEY      &
                        SBM.ADDR1$=20%, !ADDRESS LINE 1                 &
                        SBM.ADDR2$=20%, !ADDRESS LINE 2                 &
                        SBM.CTYST$=15%, !CITY/STATE LINE                &
                        SBM.ZIPCD$=9%,  !ZIP CODE                       &
                        SBM.NXDUE%,     !NEXT MONTH DUE                 &
                        SBM.CTYCD%,     !COUNTY CODE                    &
                        SBM.BALNC$=7%,  !PREMIUM PAYMENT BAL            &
                        SBM.COVDT$=6%,  !CONT COVERAGE DATE             &
                        SBM.ACTNO$=6%,  !ACCOUNT NUMBER                 &
                        SBM.SPBIL$=1%,  !SPECIAL BILL REQUEST           &
                        SBM.SLFPY$=1%,  !SELF-PAY INDICATOR             &
                        SBM.MSAMT$=6%,  !MISC PASS-THRU PREMIUM AMOUNT  &
                        SBM.LSTCH$=11%, !DATE/NO OF LAST CHANGE         &
                        SBM.LSTPY$=11%, !DATE/NO OF LAST PAYMENT        &
                        SBM.LSTAD$=11%, !DATE/NO OF LAST ADD CHANGE     &
                        SBM.PRADJ$=6%,  !PREMIUM ADJUSTMENT AMOUNT      &
                        SBM.PRV.MSAMT$=6%, ! PREVIOUS PASS THRU         &
                        SBM.PRV.PRADJ$=6%, ! PREVIOUS ADJ AMOUNT        &
                        SBM.PAS.DATE$=4%,  ! PASS THRU EFF DATE YYMM    &
                        SBM.ADJ.DATE$=4%,   ! ADJ EFFECTIVE DATE YYMM   &
                        SBM.ADJUDICATOR$ = 1%, ! ADJUDICATOR CODE       &
                        SBM.PORK$ = 1%,        ! P OR K                 &
                        SBM.COB.PENDING% ! COB PENDING CODE OR THE LAST &
                                              ! COB INQUIRY RECEIVE DATE YYMM &

600     MAP    (ELG)    ELG.SUBSQ$=16%, !SUBS/SEQ/SEQ NMBRS-PRIM KEY    &
                        ELG.GRPSB$=7%,  !GROUP + SUBGROUP NUMBERS       &
                        ELG.STRDT$=6%,  !START DATE                     &
                        ELG.ENDDT$=6%,  !END DATE                       &

700     MAP    (BEN)    BEN.SUBSQ$=14%, !SUBSCRIBER/SEQ NMBRS-PRIM KEY  &
                        BEN.NAMES$=30%, !LAST/FIRST NAMES-ALT KEY       &
                        BEN.BIRDT$=6%,  !DATE OF BIRTH                  &
                        BEN.SEXCD$=1%,  !SEX CODE                       &
                        BEN.RELCD$=1%,  !RELATIONSHIP CODE              &
                        BEN.MEDCD$=1%,  !MEDICARE CODE                  &
                        BEN.WAVCD$=1%,  !WAIVER CODE                    &
                        BEN.COBEN%      !COORDINATION OF BENEFITS       &

810   \ REQ.CH% = 1%                                                    &
      \ CTL.CH% = 2%                                                    &
      \ CMD.CH% = 3%                                                    &
      \ SBM.CH% = 4%                                                    &
      \ ELG.CH% = 5%                                                    &
      \ BEN.CH% = 6%                                                    &
      \ SBB.CH% = 7%                                                    &

815     COMMAND.FILE$ = "SSNREQ.CMD"                                    &
      \ CONTROL.FILE$ = "SSNREQ.CTL"                                    &

820     OPEN COMMAND.FILE$ FOR INPUT AS FILE #CMD.CH%                   &
                                                                        &
      \ CLOSE #CMD.CH%                                                  &
                                                                        &
      \ PRINT CRLF$ ; "    . . . aborting program"                      &
      \ PRINT "   . . . SSN change request command file "; COMMAND.FILE$;&
                        " already exists"                               &
                                                                        &
      \ GO TO 32767                                                     &

825     OPEN COMMAND.FILE$ FOR OUTPUT AS FILE #CMD.CH%                  &
830     OPEN "SBB:SBBALC.DAT" FOR INPUT AS FILE #SBB.CH%                &
      \ CLOSE #SBB.CH%                                                  &
      \ GOTO 840                                                        &

835     PRINT CRLF$ ; "   . . . aborting program"                       &
      \ PRINT         "   . . . SBB:SBBALC.DAT file does not exist"     &
      \ GOTO 32767

840     OPEN "DB4:[4,218]SSNREQ.DAT" FOR INPUT AS FILE #REQ.CH% ,       &
            ORGANIZATION INDEXED FIXED ,                                &
            ACCESS MODIFY ,                                             &
            ALLOW MODIFY ,                                              &
            MAP REQ                                                     &

850     OPEN "SBM:SBM.DAT" FOR INPUT AS FILE #SBM.CH%,                  &
            ORGANIZATION INDEXED FIXED ,                                &
            ACCESS READ ,                                               &
            ALLOW MODIFY ,                                              &
            MAP SBM                                                     &

860     OPEN "ELG:ELG.DAT" FOR INPUT AS FILE #ELG.CH%,                  &        
            ORGANIZATION INDEXED FIXED ,                                &
            ACCESS READ ,                                               &
            ALLOW MODIFY ,                                              &
            MAP ELG                                                     &

870     OPEN "BEN:BEN.DAT" FOR INPUT AS FILE #BEN.CH%,                  &
            ORGANIZATION INDEXED FIXED ,                                &
            ACCESS READ ,                                               &
            ALLOW MODIFY ,                                              &
            MAP BEN                                                     &

900     PRINT CRLF$ ; CRLF$ ;  "   . . . processing SSN change requests" ; CRLF$&
      \ PRINT CRLF$                                                     &

950     OPEN CONTROL.FILE$ FOR INPUT AS FILE #CTL.CH%                   &
                                                                        &
      \ CLOSE #CMD.CH%                                                  &                                                                           
                                                                        &
      \ PRINT CRLF$ ; "   . . . aborting program"                       &
      \ PRINT "   . . . SSN change request control file "; CONTROL.FILE$;&
                        " already exists"                               &
                                                                        &
      \ GOTO 32767                                                      &

960     OPEN CONTROLS.FILE$ FOR OUTPUT AS FILE #CTL.CH%                 &

970     PRINT #CTL.CH$ , "$JOB/NOLIM/CCL/ERROR:FATAL"                   &
      \ PRINT #CTL.CH$ , "$!"                                           &
      \ PRINT #CTL.CH$ , "$CHANGE /PRI:-16 /RUN:3                       &
      \ PRINT #CTL.CH$ , "$!                                            &
      \ PRINT #CTL.CH$ , "$!                                            &
      \ PRINT #CTL.CH$ , "$RUN TSK:FU15R1                               &
      \ PRINT #CTL.CH$ , "$DATA                                         &

1000    GET #REQ.CH%                                                    &
                                                                        &
      \ CANNOT.PROCESS% = FALSE%                                        &

2000    PRINT "==============================================================="&
                                                                        &
      \ PRINT CRLF$ ; "SSN Change Request >>> " ; INPUT.DATE$ ; "/" ;   &
                INPUT.TIME$; "/" ; USER.NBR$ ; CRLF$                    &
      \ PRINT "                  Current SSN: " ; OLD.SSN$              &
      \ PRINT "              Subscriber Name: " ; SUBSCR.NAME$          &
      \ PRINT "                  CORRECT SSN: " ; CORRECT.SSN$          &
      \ PRINT "                Date Required: " ; NEEDED.BY$            &
      \ PRINT "                    Return to: " ; RETURN.TO$            &
      \ PRINT "               Print Location: " ; PRINT.AT$             &
      \ PRINT                                                           &
      \ PRINT "     (comment: " ; TRM$(COMMENT$) ; ")"                  &
      \ PRINT                                                           &

2200    FIND #SBM.CH%, KEY #0 EQ OLD.SSN$                               &
      \ GOTO 2210                                                       &

2205    GOSUB 10100                                                     &
      \ GOTO 2500                                                       &

2210    FIND #SBM.CH%, KEY #0 EQ CORRECT.SSN$                           &
      \ GOSUB 10000                                                     &
      \ GOTO 2500                                                       &

2220    GET #ELG.CH%, KEY #0 GE CORRECT.SSN$                            &
      \ GOTO 2230 IF LEFT$(ELG.SUBSQ$,12%)<>CORRECT.SSN$                &
      \ GOSUB 10000                                                     &
      \ GOTO 2500                                                       &

2230    FIND #BEN.CH%, KEY #0 GE CORRECT.SSN$                           &
      \ GOTO 2500 IF LEFT$(BEN.SUBSQ$,12%)<>CORRECT.SSN$                &
      \ GOSUB 10000                                                     &

2500    IF NOT CANNOT.PROCESS% THEN                                     &
                PRINT "(P)rocess, ";                                    &
      \ END IF                                                          &
                                                                        &
      \ PRINT "(D)elete, -or- (S)kip this request" ;                    &
      \ INPUT ANSWER$                                                   &
                                                                        &
      \ ANSWER$ = EDIT$ ( LEFT ( ANSWER$ , 1% ) , 32% )                 &
                                                                        &
      \ PRINT                                                           &
      \ PRINT "===============================================================" &
                                                                        &
      \ IF ANSWER$ = "S"                                                &
            THEN    PRINT CRLF$ ; "   . . . SSN change request kep on file" ;&
                          CRLF$                                         &
      \             GO TO 1000                                          &
        END IF                                                          &
                                                                        &
      \ GO TO 5000 IF ANSWER$ = "D"                                     &
      \ GO TO 3000 IF ANSWER$ = "P" AND NOT CANNOT.PROCESS%             &
                                                                        &
      \ PRINT FN.ERR$("unacceptable response -- try again")             &
      \ GO TO 2500                                                      &

3000    PRINT #CTL.CH% , OLD.SSN$                                       &
      \ PRINT #CTL.CH% , CORRECT.SSN$                                   &
      \ PRINT #CTL.CH%, "C"                                             &
                                                                        &
      \ REQUEST.ADDED% = TRUE%                                          &
                                                                        &
      \ DELETE #REQ.CH%                                                 &
                                                                        &
      \ PRINT CRLF$ ; "   . . . SSN change request added to ";          &
                        " control file "; CONTROL.FILE$                 &
                                                                        &
      \ GOTO 1000                                                       &

5000    DELETE #REQ.CH%                                                 &
                                                                        &
      \ PRINT CRLF$ ; "   . . . SSN change deleted"                     &
                                                                        &
      \ GO TO 1000                                                      &

10000   PRINT FN.ERR$("CORRECT ID already on file -- cannot process")   &
      \ CANNOT.PROCESS% = TRUE%                                         &
      \ RETURN                                                          &

10100   RESUME 32000 IF ERR= 11% AND ERL=1000%                          &
      \ RESUME 31000 IF ERR= 11% AND ERL=2500%                          &
      \ RESUME   960 IF ERR=   5 AND ERL= 950%                          &
      \ RESUME   825 IF ERR=   5 AND ERL= 820%                          &
      \ RESUME   835 IF ERR=   5 AND ERL= 830%                          &
      \ RESUME  2205 IF ERR=155% AND ERL=2200%                          &
      \ RESUME  2220 IF ERR=155% AND ERL=2210%                          &
      \ RESUME  2230 IF ERR=155% AND ERL=2220%                          &
      \ RESUME  2500 IF ERR=155% AND ERL=2230%                          &

19100   IF ERR = 154% THEN SLEEP 2% \ RESUME                            &

19900   PRINT CRLF$ ; "   . . . untrapped error (" ; ERR ; ") at line" ; ERL ;   &
            CRLF$ ; "   . . . program terminating in error" ; CRLF$     &
                                                                        &
      \ CLOSE #CHNL%    FOR CHNL% = 1% TO 12%                           &
      \ ON ERROR GO TO 0                                                &

28000   DEF FN.ERR$ (MESSAGE$)                                          &
                                                                        &
      \ PRINT                                                           &
      \ PRINT CHR$(7%) + CHR$(155%) + "[7m" + "  . . . " +              &
                MESSAGE$ + CHR$(155%) + "[0m"                           &
      \ PRINT                                                           &
      \ END DEF                                                         &

31000   PRINT CRLF$ ; "   . . . program aborted by operator"            &
      \ PRINT "   . . . prior SSN change requests have been processed"  &
                                                                        &
      \ GO TO 32300                                                     &

32000   PRINT CRLF$ ; "   . . . successful completion of program" ; CRLF$ &

32300   PRINT #CTL.CH% , "9999"                                         &
      \ PRINT #CTL.CH% , "$EOD"                                         &
      \ PRINT #CTL.CH% , "$!"                                           &
      \ PRINT #CTL.CH% , "$!"                                           &
      \ PRINT #CTL.CH% , "$PIP "; CONTROL.FILE$; "/DE/WA"               &
      \ PRINT #CTL.CH% , "$!"                                           &
      \ PRINT #CTL.CH% , "$EOJ"                                         &

32700   IF REQUEST.ADDED% THEN                                          &
                PRINT #CMD.CH% , "SUBMIT BA1: = "; CONTROL.FILE$        &
      \         PRINT #CMD.CH% , "!"                                    &
      \         PRINT #CMD.CH% , "!"                                    &
      \ ELSE
      \         PRINT #CMD.CH% , "PIP "; CONTROL.FILE$ ; "/DE/WA"       &
      \         PRINT #CMD.CH% , "!"                                    &
      \         PRINT #CMD.CH% , "!"                                    &
      \ END IF                                                          &
      \ PRINT #CMD.CH%, "PIP "; COMMAND.FILE$ ; "/DE/WA"                &
      \ PRINT #CMD.CH% , "!"                                            &
      \ PRINT #CMD.CH% , "!"                                            &
                                                                        &
      \ PRINT CRLF$ ; CRLF$ ;                                           &
            "   . . . this request will process tonight"; CRLF$; CRLF$; &
            "   . . . to process immediately, type '@SSNREQ'" ;         &
            CRLF$                                                       &

32767   CLOSE #CHNL%    FOR CHNL% = 1% TO 12%                           &
      \ END