00001 IDENTIFICATION DIVISION. 04/11/13 00002 PROGRAM-ID. DTSBU599. DTSBU599 00003 DATE-WRITTEN. 03/14/07. LV001 00004 DTSBU599 00005 ******************************************************************DTSBU599 00006 * CALLING SEQUENCE: THIS PROGRAM IS CALLED TO FORMAT A *DTSBU599 00007 * BARCODE PRINT LINE *DTSBU599 00008 * *DTSBU599 00009 ******************************************************************DTSBU599 00010 * *DTSBU599 00011 * !!!!!!!!!!! CAUTION !!!!!! CAUTION!!!! CAUTION !!!! *DTSBU599 00012 * *DTSBU599 00013 * PLEASE PAY EXTRA ATTENTION TO THE BARCODE PRINT FORMULATION *DTSBU599 00014 * *DTSBU599 00015 * THE BARCODE DATA IS FOMULATED USING CODE128. TWO BARCODE FONTS*DTSBU599 00016 * ARE USED TO PRINT THE BARCODE LINE. FONT C128CP IS USED TO *DTSBU599 00017 * PRINT CHARACTERS UP TO ASCII HEX 80,(EXCEPT 3 CHARACTERS DTSBU599 00018 * RIGHT/LEFT SQUARE BRACKET AND THE CARROT). FONT C128XP.FNT *DTSBU599 00019 * IS USED TO PRINT ALL REMAINING CHARACTERS INCLUDING THE START *DTSBU599 00020 * AND STOP CHARACTER. *DTSBU599 00021 * *DTSBU599 00022 * THE DATA CONTAINED IN THE BARCODE IS AS FOLLOWS: *DTSBU599 00023 * 1. EMPLOYER NUMBER - PIC 9(06) DTSBU599 00024 * DTSBU599 00025 * DTSBU599 00026 * DTSBU599 00027 * DTSBU599 00028 * *DTSBU599 00029 * THE BARCODE IS CALCULATED USING CODE128 SUBSETB AND SUBSETC *DTSBU599 00030 * FORMULA. SUBSETB IS USED ON ANY TYPE OF DATA. SUBSETC IS USED *DTSBU599 00031 * ON NUMERIC DATA ONLY. THE NUMERIC DATA IS PAIRED TO PRODUCE *DTSBU599 00032 * A PACKED BARCODE. A SWITCH CHARACTER IS USED TO PRINT A *DTSBU599 00033 * BARCODE LINE USING SUBSETB AND SUBSETC. THIS PROGRAM USES BOTH*DTSBU599 00034 * SUBSETS AND SWITCH CHARACTERS. *DTSBU599 00035 * *DTSBU599 00036 * FOUR SEPERATE XEROX CMES ARE USED TO PRINT THE BARCODE LINE *DTSBU599 00037 * DEPENDING UPON WHICH SUBSET AND FONTS ARE CALLED. THE CME *DTSBU599 00038 * ARE AS FOLLOWS: *DTSBU599 00039 * *DTSBU599 00040 * 1. PAYSB1 - PRINT BARCODE LINE USING SUBSETB WITH ALL DATA *DTSBU599 00041 * CONTAINED IN C128CP FONT. *DTSBU599 00042 * 2. PAYSB2 - PRINT BARCODE LINE USING SUBSETB WITH CHECK DIGIT*DTSBU599 00043 * AND DATA CONTAINED IN C128XP.FNT *DTSBU599 00044 * *DTSBU599 00045 * 3. PAYSC1 - PRINT BARCODE LINE USING SUBSETC WITH ALL DATA *DTSBU599 00046 * CONTAINED IN C128CP FONT. *DTSBU599 00047 * 4. PAYSC2 - PRINT BARCODE LINE USING SUBSETC WITH CHECK DIGIT*DTSBU599 00048 * AND DATA CONTAINED IN C128XP.FNT *DTSBU599 00049 * *DTSBU599 00050 * THIS PROGRAM USES THE SWITCH CHARACTER ANY TIME SUBSETC IS *DTSBU599 00051 * CALLED BECAUSE OF THE ALPHA NUMERIC DATA IN OUR BARCODE *DTSBU599 00052 * PRINT STREAM. *DTSBU599 00053 * *DTSBU599 00054 * THE CODE VALUE USED TO CALCULATE THE CHECK DIGIT IS STORED IN *DTSBU599 00055 * 'DOESTAX.DEVL.BARCODE.HEX.VALUE'. *DTSBU599 00056 * *DTSBU599 00057 * THE VALUE OF EACH FIELD IN THE BARCODE DATA IS STORED IN DTSBU599 00058 * 'DOESTAX.DEVL.BARCODE.HEX.CODEV'. *DTSBU599 00059 * *DTSBU599 00060 * !!!!!!!!!!! CAUTION !!!!!! CAUTION!!!! CAUTION !!!! *DTSBU599 00061 * *DTSBU599 00062 * *DTSBU599 00063 * 03/14/07 INITIAL DEVELOPMENT. *DTSBU599 00064 * REFERENCE # SPEC032. CHANGED BY: ZL1 *DTSBU599 00065 * *DTSBU599 00066 * *DTSBU599 00067 * DESCRIPTION: *DTSBU599 00068 * *DTSBU599 00069 * THIS MODULE ACCEPTS 40 BYTES OF RAW DATA AND RETURNS *DTSBU599 00070 * 50 BYTES OF BARCODED DATA *DTSBU599 00071 * *DTSBU599 00072 * *DTSBU599 00073 * PROCESSING: *DTSBU599 00074 * *DTSBU599 00075 * DETAIL: *DTSBU599 00076 * *DTSBU599 00077 * RECORDS READ: *DTSBU599 00078 * *DTSBU599 00079 * *DTSBU599 00080 * PRINTED OUTPUTS: *DTSBU599 00081 * *DTSBU599 00082 * RECORDS WRITTEN: *DTSBU599 00083 * *DTSBU599 00084 * MODULES CALLED: *DTSBU599 00085 * *DTSBU599 00086 * *DTSBU599 00087 ******************************************************************DTSBU599 00088 EJECT DTSBU599 00089 ******************************************************************DTSBU599 00090 * DATASET DESCRIPTIONS *DTSBU599 00091 ******************************************************************DTSBU599 00092 ENVIRONMENT DIVISION. DTSBU599 00093 CONFIGURATION SECTION. DTSBU599 00094 INPUT-OUTPUT SECTION. DTSBU599 00095 DTSBU599 00096 FILE-CONTROL. DTSBU599 00097 DTSBU599 00098 SELECT BARCODE-PAYORDER-FILE ASSIGN TO BARCDEF1 DTSBU599 00099 FILE STATUS IS BARCODE-FILE-STATUS. DTSBU599 00100 DTSBU599 00101 SELECT BARCODE-CHARCODE-FILE ASSIGN TO BARCDEF2 DTSBU599 00102 FILE STATUS IS BARCODE-FILE-STATUS. DTSBU599 00103 DTSBU599 00104 ******************************************************************DTSBU599 00105 * FILE DESCRIPTIONS *DTSBU599 00106 ******************************************************************DTSBU599 00107 DATA DIVISION. DTSBU599 00108 FILE SECTION. DTSBU599 00109 DTSBU599 00110 FD BARCODE-PAYORDER-FILE DTSBU599 00111 RECORDING MODE IS F DTSBU599 00112 RECORD CONTAINS 150 CHARACTERS. DTSBU599 00113 DTSBU599 00114 01 BARCODE-PAYORDER-RECORD PIC X(150). DTSBU599 00115 DTSBU599 00116 DTSBU599 00117 FD BARCODE-CHARCODE-FILE DTSBU599 00118 RECORDING MODE IS F DTSBU599 00119 RECORD CONTAINS 460 CHARACTERS. DTSBU599 00120 DTSBU599 00121 01 BARCODE-VALUES-RECORD PIC X(460). DTSBU599 00122 DTSBU599 00123 ******************************************************************DTSBU599 00124 * WORKING STORAGE SECTION *DTSBU599 00125 ******************************************************************DTSBU599 00126 WORKING-STORAGE SECTION. DTSBU599 001265 77 PAN-VALET PICTURE X(24) VALUE '001DTSBU599 04/11/13'. DTSBU599 00127 77 PAN-VALET PICTURE X(24) VALUE '001DTSBU599 04/11/13'. DTSBU599 00128 77 PAN-VALET PICTURE X(24) VALUE '002DTSBU599 03/21/07'. DTSBU599 RCODE * Hex comaprison issue - Fix Start. RCODE 01 WS-INPUT-HEX PIC 9(4) COMP. RCODE 01 WS-TABLE-HEX PIC 9(4) COMP. RCODE * Hex comaprison issue - Fix End. 00129 DTSBU599 00130 01 WS-PROGRAM-CONSTANTS. DTSBU599 00131 05 PRINT-BARSETC-FONT2 PIC 9(1) VALUE ZEROS. DTSBU599 00132 05 PRINT-BARSETB-FONT2 PIC 9(1) VALUE ZEROS. DTSBU599 00133 05 CHAR-NOT-CONVERTED PIC 9(1) VALUE ZEROS. DTSBU599 00134 05 WS-QUOTE PIC X(1) VALUE QUOTE. DTSBU599 00135 05 BARCODE-SSN-TOTAL PIC 9(9) VALUE ZEROS. DTSBU599 00136 05 BARCODE-BWE-TOTAL PIC 9(9) VALUE ZEROS. DTSBU599 00137 05 TOTAL-BARCODE-VALUE PIC 9(9) VALUE ZEROS. DTSBU599 00138 05 DIVIDE-BARCODE-VALUE PIC 9(6) VALUE ZEROS. DTSBU599 00139 05 REMAINDER-BARCODE-VALUE PIC 9(5) VALUE ZEROS. DTSBU599 00140 05 BARSETB-CHAR-FOUND PIC 9(1) VALUE ZEROS. DTSBU599 00141 05 BARCODE-CHAR-FOUND PIC 9(1) VALUE ZEROS. DTSBU599 00142 05 BARCODE-CHAR-INDEX PIC 9(3) VALUE ZEROS. DTSBU599 00143 05 BARCODE-MULTIPLIER PIC 9(5) VALUE ZEROS. DTSBU599 00144 05 BARCODE-NAME-TOTAL PIC 9(6) VALUE ZEROS. DTSBU599 00145 05 BARCODE-NAME-VALUE PIC 9(5) VALUE ZEROS. DTSBU599 00146 05 CHECK-BARCODE-VALUE PIC 9(3) VALUE ZEROS. DTSBU599 00147 05 BARCODE-SETB-INDEX PIC 9(5) VALUE ZEROS. DTSBU599 00148 05 BARCODE-SETB-ONDEX PIC 9(5) VALUE ZEROS. DTSBU599 00149 05 BARCODE-VALUE-INDEX PIC 9(5) VALUE ZEROS. DTSBU599 00150 05 BARCODE-NAME-INDEX PIC 9(3) VALUE ZEROS. DTSBU599 00151 05 BARCODE-SETB-VALUE PIC 9(5) VALUE ZEROS. DTSBU599 00152 05 BARCODE-SSN-INDEX PIC 9(3) VALUE ZEROS. DTSBU599 00153 05 BARCODE-BWE-INDEX PIC 9(3) VALUE ZEROS. DTSBU599 00154 05 BARSETC-SSN-INDEX PIC 9(3) VALUE ZEROS. DTSBU599 00155 05 BARSETC-BWE-INDEX PIC 9(3) VALUE ZEROS. DTSBU599 00156 DTSBU599 00157 * THIS FILE CONTAINS ALL VALID CHARACTERS ACCEPTED BY THE BARCODEDTSBU599 00158 * FONTS ACCORDING TO THEIR ASCII DATA VALUE AND POSITION. DO NOT DTSBU599 00159 * CHANGE THIS FILE. THIS FILE IS USED TO CALCULATE THE CHARACTERDTSBU599 00160 * POSITION VALUE IN DETERMINING THE BARCODE CHECK DIGIT. IF THIS DTSBU599 00161 * FILE IS MODIFIED THE BARCODE SCANNER WILL NOT WORK. THIS FILE DTSBU599 00162 * CAN ONLY CHANGE IF THE FONTS CHARACTERS ARE BEING REMAPPED TO DTSBU599 00163 * A NEW ASCII VALUE !!!!!!!!!. DTSBU599 00164 DTSBU599 00165 01 WS-BARCODE-HEX-VALUES. DTSBU599 00166 05 BARCODE-HEX-INPUT-VALUES OCCURS 150 TIMES. DTSBU599 00167 10 BARCODE-HEX-VALUE PIC X(01). DTSBU599 00168 DTSBU599 00169 DTSBU599 00170 * THIS FILE CONTAINS ALL VALID CHARACTERS ACCEPTED BY THE BARCODEDTSBU599 00171 * FONTS ACCORDING TO THEIR ASCII DATA VALUE AND POSITION. DO NOT DTSBU599 00172 * CHANGE THIS FILE. THIS FILE IS USED TO CALCULATE THE CHARACTERDTSBU599 00173 * ASCII VALUE BASED ON POSITION IN THE DATA STREAM.***** IF THIS DTSBU599 00174 * FILE IS MODIFIED THE BARCODE SCANNER WILL NOT WORK. THIS FILE DTSBU599 00175 * CAN ONLY CHANGE IF THE FONTS CHARACTERS ARE BEING REMAPPED TO DTSBU599 00176 * A NEW ASCII VALUE !!!!!!!!!. DTSBU599 00177 DTSBU599 00178 01 WS-BARCODE-CHARCODE-VALUES. DTSBU599 00179 05 BARCODE-CHARCODE-VALUES OCCURS 115 TIMES. DTSBU599 00180 10 BARCODE-CHAR-VALUE PIC X(01). DTSBU599 00181 10 BARCODE-CODE-VALUE PIC X(03). DTSBU599 00182 DTSBU599 00183 ******************************************************************DTSBU599 00184 * PAYODR-BARCODE-LINE IS USED TO CALCULATE THE BARCODE FORMULA FORDTSBU599 00185 * BOTH TYPE OF CODE128 DATA STREAM. HOWEVER ONLY SUBSETB PRINT DTSBU599 00186 * STREAM IS PRINTED FROM THIS LINE. DTSBU599 00187 * DTSBU599 00188 ******************************************************************DTSBU599 00189 DTSBU599 00190 01 WS-BARCODE-IN-DATA. DTSBU599 00191 05 WS-BARCODE-DATA-IN PIC X(40). DTSBU599 00192 05 WS-BARCODE-DATA-INX REDEFINES DTSBU599 00193 WS-BARCODE-DATA-IN. DTSBU599 00194 10 WS-INPUT-DATA OCCURS 40 TIMES PIC X. DTSBU599 00195 DTSBU599 00196 DTSBU599 00197 01 WS-BARCODE-OUT-DATA. DTSBU599 00198 05 WS-BARCODE-DATA-OUT PIC X(50). DTSBU599 00199 05 WS-BARCODE-DATA-OUTX REDEFINES DTSBU599 00200 WS-BARCODE-DATA-OUT. DTSBU599 00201 10 WS-OUTPUT-DATA OCCURS 50 TIMES PIC X. DTSBU599 00202 DTSBU599 00203 DTSBU599 00204 01 WS-PROGRAM-VARIABLES. DTSBU599 00205 05 WS-ABEND-CODE PIC S9(4) COMP. DTSBU599 00206 DTSBU599 00207 05 PAYORDER-FILE-STATUS PIC X(2). DTSBU599 00208 88 PAYORDER-FILE-OK VALUE ZERO. DTSBU599 00209 DTSBU599 00210 05 BARCODE-FILE-STATUS PIC X(2). DTSBU599 00211 88 BARCODE-FILE-OK VALUE ZERO. DTSBU599 00212 DTSBU599 00213 ******************************************************************DTSBU599 00214 * LINKAGE SECTION *DTSBU599 00215 ******************************************************************DTSBU599 00216 LINKAGE SECTION. DTSBU599 00217 01 BARIL599-LINK-AREA. DTSBU599 00218 ++INCLUDE BARIL599 DTSBU599 00219 ******************************************************************DTSBU599 00220 * *DTSBU599 00221 ******************************************************************DTSBU599 00222 PROCEDURE DIVISION USING DTSBU599 00223 BARIL599-LINK-AREA. DTSBU599 00224 DTSBU599 00225 PROC0000-MAIN. DTSBU599 00226 PERFORM INIT0000-INITILIZE THRU INIT0000-EXIT DTSBU599 00227 DTSBU599 00228 IF L599-DATA-CONVERTED = 1 DTSBU599 00229 DISPLAY ' BARCODE DATA PASSED IS NOT VALIED ' DTSBU599 00230 ELSE DTSBU599 00231 PERFORM PROC1000-GENERATE-BARCODE THRU PROC1000-EXIT DTSBU599 00232 PERFORM TERM000-TERMINATE THRU TERM000-EXIT. DTSBU599 00233 DTSBU599 00234 PROC0000-EXIT. DTSBU599 00235 GOBACK. DTSBU599 00236 DTSBU599 00237 INIT0000-INITILIZE. DTSBU599 00238 DTSBU599 00239 MOVE 0 TO L599-DATA-CONVERTED. DTSBU599 00240 DTSBU599 00241 PERFORM SERV1400-OPEN-BARCODE-PAYORDER THRU SERV1400-EXIT. DTSBU599 00242 DTSBU599 00243 PERFORM SERV1500-OPEN-BARCODE-CHARCODE THRU SERV1500-EXIT. DTSBU599 00244 DTSBU599 00245 IF L599-REC-LENGTH < 5 OR DTSBU599 00246 L599-REC-LENGTH > 40 DTSBU599 00247 MOVE 1 TO L599-DATA-CONVERTED DTSBU599 00248 DISPLAY ' BARCODE DATA LENGTH IS NOT CORRECT'. DTSBU599 00249 DTSBU599 00250 IF L599-INPUT-DATA = SPACES DTSBU599 00251 MOVE 1 TO L599-DATA-CONVERTED DTSBU599 00252 DISPLAY ' INPUT DATA IS ALL SPACES !!!!!!!!'. DTSBU599 00253 DTSBU599 00254 INIT0000-EXIT. DTSBU599 00255 EXIT. DTSBU599 00256 DTSBU599 00257 PROC1000-GENERATE-BARCODE. DTSBU599 00258 DTSBU599 00259 MOVE L599-INPUT-DATA TO WS-BARCODE-DATA-IN. DTSBU599 00260 DTSBU599 00261 DTSBU599 00262 ******************************************************************DTSBU599 00263 * THE BARCODE ROUTINE MUST BE PERFORMED FIRST TO DETERMINE WHICH DTSBU599 00264 * XEROX CME PRINT LINE TO CALL WHEN PRINTING THE PAY ORDER FORM. DTSBU599 00265 * THE MODIFY COMMAND, MODIFIES THE XEROX JDE TO INSERT THE PROPER DTSBU599 00266 * CME COMMAND. DTSBU599 00267 ******************************************************************DTSBU599 00268 DTSBU599 00269 MOVE ZEROS TO PRINT-BARSETB-FONT2 DTSBU599 00270 PRINT-BARSETC-FONT2 DTSBU599 00271 CHAR-NOT-CONVERTED DTSBU599 00272 TOTAL-BARCODE-VALUE DTSBU599 00273 BARCODE-SSN-TOTAL DTSBU599 00274 BARCODE-BWE-TOTAL DTSBU599 00275 BARCODE-NAME-TOTAL DTSBU599 00276 BARCODE-VALUE-INDEX. DTSBU599 00277 DTSBU599 00278 DTSBU599 00279 PERFORM PROC1600-BARSETB THRU PROC1600-EXIT. DTSBU599 00280 DTSBU599 00281 PROC1000-EXIT. DTSBU599 00282 EXIT. DTSBU599 00283 DTSBU599 00284 PROC1600-BARSETB. DTSBU599 00285 DTSBU599 00286 ***************************************************************** DTSBU599 00287 * THIS ROUTINE WILL BE CALLED TO FORMULATE A SUBSETB TYPE BARCODE DTSBU599 00288 * WHENEVER THE DATA STREAM CONTAINS DATA THAT CANNOT BE USED IN DTSBU599 00289 * CONJUNCTION WITH SUBSETC. DTSBU599 00290 ***************************************************************** DTSBU599 00291 DTSBU599 00292 MOVE ZEROS TO TOTAL-BARCODE-VALUE DTSBU599 00293 BARCODE-NAME-TOTAL DTSBU599 00294 BARCODE-VALUE-INDEX DTSBU599 00295 PRINT-BARSETB-FONT2 DTSBU599 00296 BARSETB-CHAR-FOUND. DTSBU599 00297 DTSBU599 00298 MOVE SPACES TO WS-BARCODE-OUT-DATA. DTSBU599 00299 DTSBU599 00300 ***************************************************************** DTSBU599 00301 * SET UP SPECIAL CONTROL CHARACTERS FOR PRINTING BARCODE USING DTSBU599 00302 * SUBSETB DTSBU599 00303 ***************************************************************** DTSBU599 00304 DTSBU599 00305 MOVE 1 TO BARCODE-SETB-ONDEX. DTSBU599 00306 DTSBU599 00307 MOVE '*' TO WS-OUTPUT-DATA (BARCODE-SETB-ONDEX) DTSBU599 00308 DTSBU599 00309 MOVE 104 TO TOTAL-BARCODE-VALUE. DTSBU599 00310 DTSBU599 00311 PERFORM PROC1675-BARSETB-CHARCODE THRU PROC1675-EXIT DTSBU599 00312 VARYING BARCODE-SETB-INDEX FROM 1 BY 1 UNTIL DTSBU599 00313 BARCODE-SETB-INDEX GREATER L599-REC-LENGTH. DTSBU599 00314 DTSBU599 00315 * DISPLAY 'TOT ' TOTAL-BARCODE-VALUE. DTSBU599 00316 DTSBU599 00317 DIVIDE 103 INTO TOTAL-BARCODE-VALUE GIVING DTSBU599 00318 DIVIDE-BARCODE-VALUE. DTSBU599 00319 DTSBU599 00320 * DISPLAY 'DIV ' DIVIDE-BARCODE-VALUE. DTSBU599 00321 DTSBU599 00322 COMPUTE REMAINDER-BARCODE-VALUE = DTSBU599 00323 DIVIDE-BARCODE-VALUE * 103. DTSBU599 00324 DTSBU599 00325 * DISPLAY 'REM ' REMAINDER-BARCODE-VALUE. DTSBU599 00326 DTSBU599 00327 COMPUTE CHECK-BARCODE-VALUE = DTSBU599 00328 TOTAL-BARCODE-VALUE - REMAINDER-BARCODE-VALUE. DTSBU599 00329 DTSBU599 00330 * DISPLAY 'CHKV ' CHECK-BARCODE-VALUE. DTSBU599 00331 DTSBU599 00332 ADD 1 TO BARCODE-SETB-ONDEX. DTSBU599 00333 DTSBU599 00334 IF CHECK-BARCODE-VALUE = ZEROS DTSBU599 00335 MOVE SPACES TO WS-OUTPUT-DATA (BARCODE-SETB-ONDEX) DTSBU599 00336 ELSE DTSBU599 00337 MOVE BARCODE-HEX-VALUE(CHECK-BARCODE-VALUE) DTSBU599 00338 TO WS-OUTPUT-DATA (BARCODE-SETB-ONDEX). DTSBU599 00339 DTSBU599 00340 * DISPLAY 'HEXV ' BARCODE-HEX-VALUE(CHECK-BARCODE-VALUE). DTSBU599 00341 DTSBU599 00342 * IF CHECK-BARCODE-VALUE = 91 OR 92 OR 93 OR 94 DTSBU599 00343 * MOVE 'B3' TO L599-FONT-FORMAT-USED DTSBU599 00344 * ELSE DTSBU599 00345 IF CHECK-BARCODE-VALUE = 59 OR 61 OR 62 OR > 90 DTSBU599 00346 MOVE 'B2' TO L599-FONT-FORMAT-USED DTSBU599 00347 ELSE DTSBU599 00348 MOVE 'B1' TO L599-FONT-FORMAT-USED. DTSBU599 00349 DTSBU599 00350 ADD 1 TO BARCODE-SETB-ONDEX. DTSBU599 00351 DTSBU599 00352 MOVE ',' TO WS-OUTPUT-DATA (BARCODE-SETB-ONDEX) DTSBU599 00353 DTSBU599 00354 * DISPLAY 'DOUT ' WS-BARCODE-OUT-DATA. DTSBU599 00355 MOVE WS-BARCODE-OUT-DATA TO L599-BARCODED-DATA. DTSBU599 00356 DTSBU599 00357 PROC1600-EXIT. DTSBU599 00358 EXIT. DTSBU599 00359 DTSBU599 00360 PROC1675-BARSETB-CHARCODE. DTSBU599 00361 DTSBU599 00362 DTSBU599 00363 PERFORM PROC1680-BARSETB-CODE-VALUE THRU PROC1680-EXIT DTSBU599 00364 VARYING BARCODE-CHAR-INDEX FROM 1 BY 1 UNTIL DTSBU599 00365 BARCODE-CHAR-INDEX GREATER THAN 106. DTSBU599 00366 DTSBU599 00367 IF BARSETB-CHAR-FOUND = ZEROS DTSBU599 00368 DISPLAY '!!!! INVALID CHAR IN BARSETB !!!!' DTSBU599 00369 DISPLAY 'DATA ' WS-BARCODE-IN-DATA DTSBU599 00370 PERFORM SERV2100-ABEND-PGM THRU SERV2100-EXIT. DTSBU599 00371 DTSBU599 00372 ADD 1 TO BARCODE-SETB-ONDEX. DTSBU599 00373 DTSBU599 00374 MOVE WS-INPUT-DATA (BARCODE-SETB-INDEX) TO DTSBU599 00375 WS-OUTPUT-DATA (BARCODE-SETB-ONDEX). DTSBU599 00376 DTSBU599 00377 COMPUTE BARCODE-SETB-VALUE = DTSBU599 00378 BARCODE-SETB-VALUE * BARCODE-SETB-INDEX. DTSBU599 00379 DTSBU599 00380 COMPUTE TOTAL-BARCODE-VALUE = DTSBU599 00381 TOTAL-BARCODE-VALUE + BARCODE-SETB-VALUE. DTSBU599 00382 DTSBU599 00383 PROC1675-EXIT. DTSBU599 00384 EXIT. DTSBU599 00385 DTSBU599 00386 PROC1680-BARSETB-CODE-VALUE. DTSBU599 00387 DTSBU599 RCODE * Hex comaprison issue - Fix Start. RCODE * Convert both values to their numeric representation for comparison RCODE COMPUTE WS-INPUT-HEX = RCODE FUNCTION ORD(WS-INPUT-DATA(BARCODE-SETB-INDEX)) RCODE COMPUTE WS-TABLE-HEX = RCODE FUNCTION ORD(BARCODE-CHAR-VALUE(BARCODE-CHAR-INDEX)) RCODE DTSBU599 RCODE IF WS-INPUT-HEX = WS-TABLE-HEX RCODE * IF WS-INPUT-DATA (BARCODE-SETB-INDEX) = DTSBU599 RCODE * BARCODE-CHAR-VALUE (BARCODE-CHAR-INDEX) DTSBU599 RCODE * Hex comaprison issue - Fix End. 00390 MOVE BARCODE-CODE-VALUE (BARCODE-CHAR-INDEX) DTSBU599 00391 TO BARCODE-SETB-VALUE DTSBU599 00392 MOVE 1 TO BARSETB-CHAR-FOUND DTSBU599 00393 MOVE 107 TO BARCODE-CHAR-INDEX. DTSBU599 00394 DTSBU599 00395 PROC1680-EXIT. DTSBU599 00396 EXIT. DTSBU599 00397 DTSBU599 00398 DTSBU599 00399 DTSBU599 00400 SERV1400-OPEN-BARCODE-PAYORDER. DTSBU599 00401 DTSBU599 00402 OPEN INPUT BARCODE-PAYORDER-FILE. DTSBU599 00403 DTSBU599 00404 IF NOT BARCODE-FILE-OK DTSBU599 00405 DISPLAY SPACE DTSBU599 00406 DISPLAY 'BARCDEF1 - BARCODE HEX FILE ERROR' DTSBU599 00407 DISPLAY 'BARCDEF1 - RETURN OPEN: ' BARCODE-FILE-STATUS DTSBU599 00408 MOVE 90 TO WS-ABEND-CODE DTSBU599 00409 CALL 'ILBOABN0' USING WS-ABEND-CODE. DTSBU599 00410 DTSBU599 00411 READ BARCODE-PAYORDER-FILE INTO WS-BARCODE-HEX-VALUES. DTSBU599 00412 DTSBU599 00413 IF NOT BARCODE-FILE-OK DTSBU599 00414 DISPLAY SPACE DTSBU599 00415 DISPLAY 'BARCDEF1 - BARCODE HEX FILE ERROR' DTSBU599 00416 DISPLAY 'BARCDEF1 - RETURN READ: ' BARCODE-FILE-STATUS DTSBU599 00417 MOVE 90 TO WS-ABEND-CODE DTSBU599 00418 CALL 'ILBOABN0' USING WS-ABEND-CODE. DTSBU599 00419 SERV1400-EXIT. DTSBU599 00420 EXIT. DTSBU599 00421 DTSBU599 00422 SERV1500-OPEN-BARCODE-CHARCODE. DTSBU599 00423 DTSBU599 00424 OPEN INPUT BARCODE-CHARCODE-FILE. DTSBU599 00425 DTSBU599 00426 IF NOT BARCODE-FILE-OK DTSBU599 00427 DISPLAY SPACE DTSBU599 00428 DISPLAY 'BARCDEF2 - BARCODE CHAR FILE ERROR' DTSBU599 00429 DISPLAY 'BARCDEF2 - RETURN OPEN: ' BARCODE-FILE-STATUS DTSBU599 00430 MOVE 90 TO WS-ABEND-CODE DTSBU599 00431 CALL 'ILBOABN0' USING WS-ABEND-CODE. DTSBU599 00432 DTSBU599 00433 READ BARCODE-CHARCODE-FILE INTO WS-BARCODE-CHARCODE-VALUES. DTSBU599 00434 DTSBU599 00435 IF NOT BARCODE-FILE-OK DTSBU599 00436 DISPLAY SPACE DTSBU599 00437 DISPLAY 'BARCDEF2 - BARCODE CHAR FILE ERROR' DTSBU599 00438 DISPLAY 'BARCDEF2 - RETURN READ: ' BARCODE-FILE-STATUS DTSBU599 00439 MOVE 90 TO WS-ABEND-CODE DTSBU599 00440 CALL 'ILBOABN0' USING WS-ABEND-CODE. DTSBU599 00441 SERV1500-EXIT. DTSBU599 00442 EXIT. DTSBU599 00443 DTSBU599 00444 DTSBU599 00445 SERV2100-ABEND-PGM. DTSBU599 00446 DTSBU599 00447 DISPLAY SPACE. DTSBU599 00448 DISPLAY 'BARCDE01 - PROGRAM ABENDED INVALID DATA '. DTSBU599 00449 MOVE 99 TO WS-ABEND-CODE. DTSBU599 00450 CALL 'ILBOABN0' USING WS-ABEND-CODE. DTSBU599 00451 DTSBU599 00452 SERV2100-EXIT. DTSBU599 00453 EXIT. DTSBU599 00454 DTSBU599 00455 TERM000-TERMINATE. DTSBU599 00456 DTSBU599 00457 DTSBU599 00458 CLOSE BARCODE-PAYORDER-FILE. DTSBU599 00459 CLOSE BARCODE-CHARCODE-FILE. DTSBU599 00460 DTSBU599 00461 TERM000-EXIT. DTSBU599 00462 EXIT. DTSBU599 00463 DTSBU599