* Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 1 * api.cbl 1 IDENTIFICATION DIVISION. 2 PROGRAM-ID. jobrequest-menu. 3 AUTHOR. Nicholas A S. 4 DATE-WRITTEN. 29/08/1997. 5 DATE-COMPILED. 29-Oct-97 02:22. 6*************************************** 7* Program module for job request * 8*************************************** 9 ENVIRONMENT DIVISION. 10 FILE-CONTROL. 11 SELECT job-file ASSIGN TO 12 "/users/students/df9609/df960931/project/job-file.dat" 13 ORGANIZATION IS INDEXED 14 ACCESS RANDOM 15 RECORD KEY IS J-no 16 . 17 SELECT client-file ASSIGN TO 18 "/users/students/df9609/df960946/project/client.dat" 19 ORGANIZATION IS INDEXED 20 ACCESS DYNAMIC 21 record KEY IS C-id. 22 SELECT worker-file ASSIGN TO 23 "/users/students/df9609/df960934/project/worker.dat" 24 ORGANIZATION IS INDEXED 25 ACCESS DYNAMIC 26 RECORD KEY IS W-id. 27 SELECT Assign-file ASSIGN TO 28 "/users/students/df9609/df960931/project/assignment.dat" 29 ORGANIZATION IS LINE SEQUENTIAL 30 ACCESS SEQUENTIAL. 31 SELECT lastjob ASSIGN TO 32 "/users/students/df9609/df960931/project/nextjob.dat" 33 ORGANIZATION IS SEQUENTIAL 34 ACCESS SEQUENTIAL 35 FILE STATUS fs-file-status. 36 SELECT jobreport ASSIGN TO 37 "/users/students/df9609/df960931/project/assign.rpt" 38 ORGANIZATION IS LINE SEQUENTIAL 39 ACCESS SEQUENTIAL 40 FILE STATUS fs-file-status. 41 42 DATA DIVISION. * 43 COPY "job.fd". 44********************************************* 45* file description of job-file * 46********************************************* 47 FD Job-file. 48 01 Job-data. 49 05 J-no PIC 9(6) . 50 05 J-Cid PIC 9(6) . 51 05 J-title PIC 9. 52 05 J-start. 53 10 J-startDay PIC 9(2) . 54 10 J-startMonth PIC 9(2) . 55 10 J-startYear PIC 9(4) . 56 05 J-end. 57 10 J-endDay PIC 9(2) . 58 10 J-endMonth PIC 9(2) . * Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 2 * api.cbl (job.fd) 59 10 J-endYear PIC 9(4) . 60 05 J-dailyrate PIC 9(3)v99 . 61 05 J-dailyHours PIC 9(2) . 62 05 J-rptTo. 63 10 J-rptName PIC X(30). 64 10 J-rptAddr. 65 15 J-rptaddr1 PIC X(30). 66 15 J-rptaddr2 PIC X(30). 67 10 J-rptPhone. 68 15 J-rptPhoneCode PIC 9(3) . 69 15 J-rptPhoneNo PIC 9(7) . 70 05 J-status PIC 9 . 71***** J-status 0-job completed 1-on going ***** 72************* end FD ******************* * 73 COPY "client.fd". 74******************************************** 75* file description for client-file * 76******************************************** 77 FD Client-file. 78 01 Client-data. 79 05 C-id PIC 9(6) VALUE 0. 80 05 C-name PIC X(30). 81 05 C-address. 82 10 C-addr1 PIC X(30). 83 10 C-addr2 PIC X(30). 84 10 C-addr3. 85 15 C-poscode PIC 9(5) . 86 15 C-town PIC X(24). 87 05 C-state PIC X(30). 88 05 C-phone. 89 10 C-phoneCode PIC 9(3) . 90 10 C-phoneNo PIC 9(7) . 91 05 C-contact PIC X(30) . 92 05 C-billYTD PIC 9(6)v99 . 93 05 C-payYTD PIC 9(6)v99 . 94 05 C-balYTD PIC 9(6)v99 . 95***************** end FD ******************** * 96 COPY "worker.fd". 97************************************************* 98* File description of worker-file * 99************************************************* 100 FD Worker-file. 101 01 Worker-data. 102 05 W-id PIC 9(6). 103 05 W-name PIC X(30). 104 05 W-EPFno PIC 9(8). 105 05 W-address. 106 10 W-addr1 PIC X(30). 107 10 W-addr2 PIC X(30). 108 10 W-addr3. 109 15 W-poscode PIC 9(5). 110 15 FILLER PIC X. 111 15 W-town PIC X(24). 112 10 W-state PIC X(30). 113 05 W-phone. 114 10 W-phoneCode PIC 9(3). 115 10 W-phoneNo PIC 9(7). 116 05 W-dob. * Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 3 * api.cbl (worker.fd) 117 10 W-day PIC 9(2). 118 10 W-month PIC 9(2). 119 10 W-year PIC 9(4). 120 05 W-sex PIC X. 121 05 W-hireOn. 122 10 W-hireDay PIC 9(2). 123 10 W-hireMonth PIC 9(2). 124 10 W-hireYear PIC 9(4). 125 05 W-lastWork. 126 10 W-lastDay PIC 9(2). 127 10 W-lastMonth PIC 9(2). 128 10 W-lastYear PIC 9(4). 129 05 W-avgrating PIC 9v99. 130 05 W-skill. 131 10 W-book PIC 9. 132 10 W-file PIC 9. 133 10 W-steno PIC 9. 134 10 W-type PIC 9. 135 10 W-word PIC 9. 136 05 W-Status PIC x. 137*************** end FD ************************* * 138 COPY "assign.fd". 139********************************* 140* File description of assign.fd * 141********************************* 142 FD Assign-file. 143 01 Assign-data. 144 05 A-jobNo PIC 9(6). 145 05 A-Wid PIC 9(6). 146 05 A-raterName PIC X(30). 147 05 A-rateDate. 148 10 A-rateYear PIC 9(4). 149 10 A-rateMonth PIC 9(2). 150 10 A-rateDay PIC 9(2). 151 05 A-Wrating PIC 9. 152 05 A-daysworked-week PIC 9v9. 153 05 A-daysworked-total PIC 9(3)v9. 154 FD lastjob. 155 01 last-J-no PIC 9(6). 156 FD jobreport. 157 01 print-rec PIC x(80). 158 159 WORKING-STORAGE SECTION. 160 01 dummy PIC x. 161 01 british-date. 162 05 ws-year PIC 9(4) VALUE ZEROS. 163 05 ws-month PIC 9(2) VALUE ZEROS. 164 05 ws-day PIC 9(2) VALUE ZEROS. 165 05 PIC X(13). 166 01 temp-date. 167 05 temp-day PIC 9(2) VALUE ZEROS. 168 88 valid-day VALUE 1 THRU 31. 169 05 temp-mth PIC 9(2) VALUE ZEROS. 170 88 valid-mth VALUE 1 thru 12. 171 05 temp-year PIC 9(4) VALUE ZEROS. 172 88 valid-year VALUE 1 THRU 9999. 173 01 fs-file-status-fields. 174 05 fs-file-status PIC 9(2) VALUE ZEROS. * Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 4 * api.cbl 175 01 line-count PIC 9(2) VALUE ZEROS. 176 01 ws-enter PIC X. 177 88 no-more-rec VALUE "6". 178 88 yes-more-rec VALUE "y","Y". 179 88 ok-enter-request VALUE "n","N". 180 88 no-enter-request VALUE "x". 181 01 title-bar PIC X(27) VALUE 182 " << JOBS MENU >> ". 183 01 check-fd-fields PIC X. 184 88 valid-field VALUE "1". 185 88 not-valid-field VALUE "0". 186 01 ws-J-status PIC X. 187 88 o-J-status VALUE "o","O". 188 88 c-J-status VALUE "c","C". 189 01 eof-switch PIC X. 190 88 yes-eof VALUE "y". 191 88 no-eof VALUE "n". 192 01 valid-worker PIC x. 193 88 ok-valid-worker VALUE "y". 194 88 not-valid-worker VALUE "n". 195 01 ws-worker PIC Z(6). 196 01 messages-line. 197 05 blank-line PIC x(60) VALUE SPACES. 198 05 msg-line1 PIC x(60) VALUE SPACES. 199 05 msg-line2 PIC x(60) VALUE SPACES. 200 01 ws-data-entry. 201 05 ws-J-no PIC 9(6) VALUE ZEROS. 202 05 ws-skill PIC 9 VALUE ZEROS. 203 88 valid-skill VALUE 0 THRU 5. 204 05 ws-J-dailyrate PIC 9(3)v99 VALUE zero. 205 88 valid-J-dailyrate VALUE 1 THRU 999.99. 206 05 ws-J-dailyHours PIC 9(2) VALUE 00. 207 88 valid-J-dailyHours VALUE 1 THRU 24. 208 05 ws-J-rptName PIC X(30) VALUE SPACES. 209 05 ws-J-rptAddr1 PIC X(30) VALUE SPACES. 210 05 ws-J-rptAddr2 PIC X(30) VALUE SPACES. 211 05 ws-J-rptPhone. 212 10 ws-J-rptPhonecode PIC 9(3) VALUE zero. 213 10 ws-J-rptPhoneNo PIC 9(7) VALUE zero. 214 01 ws-option PIC X. 215 88 option-no2 value "2". 216 88 option-no3 value "3". 217 88 option-no4 value "4". 218 01 pr-job-header2. 219 05 pic x(9) value SPACES. 220 05 PIC x(34) VALUE 221 "List of employees with skills in ". 222 05 pr-skills PIC X(16). 223 05 PIC X(9) VALUE SPACES. 224 01 pr-job-header3. 225 05 PIC x(11) VALUE 226 "Emp. No. ". 227 05 PIC X(13) VALUE 228 "EMPLOYEE NAME". 229 05 PIC X(18) VALUE SPACES. 230 05 PIC X(4) VALUE "SEX". 231 05 PIC X(3) VALUE SPACES. 232 05 PIC X(9) VALUE "TELEPHONE". * Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 5 * api.cbl 233 01 pr-job-details. 234 05 PIC X(1) VALUE SPACES. 235 05 pr-E-id PIC 9(6) VALUE ZEROS. 236 05 PIC X(3) VALUE SPACES. 237 05 pr-E-name PIC X(33). 238 05 pr-E-sex PIC X. 239 05 PIC X(3) VALUE SPACES. 240 05 pr-E-telcode PIC 9(3). 241 05 PIC X VALUE "-". 242 05 pr-E-telno PIC 9(7). 243 01 Jhelp-esc-code. 244 05 hp-code PIC X VALUE "J". 245 05 hp-num PIC 9(3) VALUE 1. 246 247 LINKAGE SECTION. 248 01 job-escape PIC X. 249 88 esc-code-m VALUE "m","M". 250 88 esc-code-p VALUE "p","P". 251 252 SCREEN SECTION. 253 01 Job-menu-scr. 254 05 Header-Scr. 255 10 BLANK SCREEN. 256 10 LINE 01 COL 01 PIC X(5) REVERSE-VIDEO. 257 10 LINE 01 COL 07 VALUE "MAIN MENU". 258 10 LINE 01 COL 17 PIC X(46) REVERSE-VIDEO. 259 10 LINE 01 COL 64 PIC 9(2) FROM ws-day. 260 10 LINE 01 COL 66 VALUE "/". 261 10 LINE 01 COL 67 PIC 9(2) FROM ws-month. 262 10 LINE 01 COL 69 VALUE "/". 263 10 LINE 01 COL 70 PIC 9(4) FROM ws-year. 264 10 LINE 01 COL 75 PIC X(5) REVERSE-VIDEO. 265 10 line 03 COL 25 PIC x(27) FROM title-bar. 266 10 line 03 COL 54 VALUE "current Job ID #". 267 10 line 03 COL 70 PIC 9(6) FROM last-J-no. 268 05 Footer-Scr. 269 10 LINE 23 COL 01 PIC X(15) REVERSE-VIDEO. 270 10 LINE 23 COL 17 VALUE 271 "ESC - [M]AIN MENU - [P]REVIOUS MENU - [H]ELP". 272 10 LINE 23 COL 64 PIC X(15) REVERSE-VIDEO. 273 01 job-msg-line. 274 05 blank-msg. 275 10 LINE 21 COL 03 PIC x(60) FROM blank-line. 276 10 LINE 22 COL 03 PIC x(60) FROM blank-line. 277 05 msg-line. 278 10 LINE 21 COL 03 PIC x(60) FROM msg-line1. 279 10 LINE 22 COL 03 PIC x(60) FROM msg-line2. 280 01 job-main-scr. 281 05 job-main-scr2. 282 10 LINE 06 COL 25 VALUE 283 "1. New job request ". 284 10 LINE 08 COL 25 VALUE 285 "2. Job query by job ID.". 286 10 LINE 10 COL 25 VALUE 287 "3. Process Job Request". 288 10 LINE 12 COL 25 VALUE 289 "4. Assign worker to a Job". 290 10 LINE 14 COL 25 VALUE * Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 6 * api.cbl 291 "5. Verify days worked". 292 10 LINE 16 COL 25 VALUE 293 "6. Return Main Menu". 294 10 LINE 19 COL 31 VALUE 295 "Enter Selection : [ ]". 296 10 LINE 19 COL 50 PIC X TO ws-option AUTO. 297 01 client-scr. 298 05 client-data-scr. 299 10 LINE 07 COL 25 PIC x(30) FROM C-name. 300 10 LINE 08 COL 25 PIC x(30) FROM C-addr1. 301 10 LINE 09 COL 25 PIC x(30) FROM C-addr2. 302 10 LINE 10 COL 25 PIC 9(5) FROM C-poscode. 303 10 LINE 10 COL 31 PIC x(24) FROM C-town. 304 10 LINE 11 COL 25 PIC 9(03) FROM C-phoneCode. 305 10 LINE 11 COL 28 VALUE "-". 306 10 LINE 11 COL 29 PIC 9(07) FROM C-phoneNo REQUIRED. 307 10 LINE 12 COL 25 PIC x(30) FROM C-contact REQUIRED. 308 01 new-job-scr. 309 05 job-new-request-screen. 310 10 LINE 06 COL 10 VALUE 311 "Client ID :". 312 10 LINE 07 COL 10 VALUE 313 "Client Name :". 314 10 LINE 08 COL 10 VALUE 315 "Client Address:". 316 10 LINE 11 COL 10 VALUE 317 "Client Tel No.:". 318 10 LINE 12 COL 10 VALUE 319 "Contact Person:". 320 10 LINE 14 COL 10 VALUE 321 "Job Title Code :". 322 10 LINE 14 COL 42 VALUE 323 "Start Date: / / ". 324 10 LINE 15 COL 10 VALUE 325 "Daily Hours :". 326 10 LINE 15 COL 30 VALUE 327 "Hrs Daily rate: RM/Day". 328 10 LINE 16 COL 10 VALUE 329 "Report to (NAME):". 330 10 LINE 17 COL 10 VALUE 331 " (ADDRESS):". 332 10 LINE 19 COL 10 VALUE 333 " (TELEPHONE): -". 334 01 job-request-data-entry. 335 05 enter-ws-skill. 336 10 LINE 14 COL 28 PIC 9 USING ws-skill REQUIRED. 337 05 enter-daily-hrs. 338 10 LINE 15 COL 28 PIC 99 USING ws-J-dailyHours 339 REQUIRED. 340 05 enter-J-start-scr. 341 10 LINE 14 COL 54 PIC 9(2) 342 using temp-day AUTO REQUIRED. 343 10 LINE 14 COL 57 PIC 9(2) 344 using temp-mth AUTO REQUIRED. 345 10 LINE 14 COL 60 PIC 9(4) 346 using temp-year AUTO REQUIRED. 347 05 J-daily-rate-scr. 348 10 LINE 15 COL 54 PIC z(3).99 * Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 7 * api.cbl 349 using ws-J-dailyrate REQUIRED. 350 05 J-rptName-scr. 351 10 LINE 16 COL 27 PIC X(30) using ws-J-rptName. 352 05 J-rptAddr1-scr. 353 10 LINE 17 COL 27 PIC X(30) using ws-J-rptAddr1. 354 05 J-rptAddr2-scr. 355 10 LINE 18 COL 27 PIC X(30) using ws-J-rptAddr2. 356 05 J-rptPhone-scr. 357 10 J-rptPhonecode-scr. 358 15 LINE 19 COL 28 PIC 9(3) 359 using ws-J-rptPhonecode AUTO 360 REQUIRED. 361 10 J-rptPhoneNo-scr. 362 15 LINE 19 COL 32 PIC 9(7) 363 using ws-J-rptPhoneNo REQUIRED. 364 01 job-no-scr. 365 10 LINE 06 COL 40 VALUE "JOB ID Number:". 366 10 COL PLUS 2 PIC Z(6) USING ws-J-no. 367 01 confirm-ok-scr. 368 10 LINE 21 COL 53 PIC X USING ws-enter AUTO. 369 01 confirm-save-scr. 370 10 LINE 21 COL 53 PIC X USING ws-enter AUTO. 371 372 PROCEDURE DIVISION USING job-escape, Jhelp-esc-code. 373 374 DECLARATIVES. 375 1000-job-file-error SECTION. 376***** section to trap error if lastjob file is gone ***** 377 USE AFTER ERROR PROCEDURE ON lastjob. 378 IF fs-file-status = 35 then 379 PERFORM 025-job-initial. 380 END DECLARATIVES. 381 382 000-Main SECTION. 383***** main program section of job menu ***** 384 OPEN I-O job-file. 385 OPEN I-O Client-file. 386 OPEN I-O Worker-file. 387 OPEN output jobreport. 388 OPEN extend Assign-file. 389 OPEN INPUT lastjob. 390 READ lastjob. 391 CLOSE lastjob. 392 SET yes-more-rec TO true. 393 MOVE "J001" TO Jhelp-esc-code 394***** main job screen ***** 395 PERFORM UNTIL no-more-rec or esc-code-m 396 SET no-enter-request TO TRUE 397 MOVE " << JOBS MENU >> " TO title-bar 398 PERFORM 100-screen-border 399 MOVE "N" TO job-escape 400 DISPLAY job-main-scr2 401 ACCEPT job-main-scr ON ESCAPE PERFORM 900-on-escape 402 END-ACCEPT 403 EVALUATE ws-option 404 WHEN "1" 405 MOVE " << JOB REQUEST >>" TO title-bar 406 MOVE "J002" TO Jhelp-esc-code * Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 8 * api.cbl 407 PERFORM 400-job-request 408 WHEN "2" 409 MOVE " << JOB QUERY >>" TO title-bar 410 MOVE "J003" TO Jhelp-esc-code 411 PERFORM 600-job-query-menu 412 WHEN "3" 413 MOVE " << PROCESS THE JOB >>" TO title-bar 414 MOVE "J004" TO Jhelp-esc-code 415 PERFORM 700-process-job 416 WHEN "4" 417 MOVE "<< Assign Worker To Job >>" TO title-bar 418 MOVE "J005" TO Jhelp-esc-code 419 PERFORM 800-assign-worker-job 420 WHEN "5" 421 CALL 422 "/users/students/df9609/df960931/project/wkdays" 423 USING BY REFERENCE job-escape 424 CANCEL 425 "/users/students/df9609/df960931/project/wkdays" 426 WHEN "6" SET no-more-rec TO TRUE 427 END-EVALUATE 428 END-PERFORM. 429 CLOSE job-file. 430 CLOSE Client-file. 431 CLOSE Worker-file. 432 CLOSE Assign-file. 433 CLOSE jobreport. 434 EXIT PROGRAM 435 . 436 437 025-job-initial. 438***** Initialize lastjob file to 1 ***** 439 OPEN OUTPUT lastjob 440 MOVE 1 TO last-J-no 441 WRITE last-J-no 442 CLOSE lastjob 443 . 444 445 035-clear-msg-line. 446***** display screen border ***** 447 MOVE SPACES TO messages-line 448 . 449 450 100-screen-border. 451***** display screen border ***** 452 MOVE FUNCTION CURRENT-DATE TO british-date 453 DISPLAY Job-menu-scr 454 . 455 456 400-job-request. 457***** new job request menu ***** 458 DISPLAY ERASE 459 PERFORM 100-screen-border 460 DISPLAY new-job-scr 461***** read last job no ***** 462 OPEN INPUT lastjob 463 READ lastjob 464 END-READ * Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 9 * api.cbl 465 CLOSE lastjob 466***** accept the client id ***** 467 MOVE ZEROS TO J-Cid 468 Display J-Cid AT 0625 469 ACCEPT J-Cid AT 0625 470 ON ESCAPE PERFORM 900-on-escape 471 END-ACCEPT 472 IF NOT (esc-code-m OR esc-code-p) THEN 473 MOVE J-Cid TO C-id 474***** check if client exist ***** 475 READ Client-file 476 INVALID KEY PERFORM 420-Client-error 477 ACCEPT dummy AT 2232 ON ESCAPE 478 PERFORM 900-on-escape 479 END-ACCEPT 480 NOT INVALID KEY 481 DISPLAY client-scr 482 PERFORM 500-enter-request 483 PERFORM 520-process-confirmation 484 END-READ 485 END-IF 486 . 487 488 420-Client-error. 489***** display error msg if no such client ***** 490 MOVE "Client not found !!" TO msg-line1. 491 DISPLAY job-msg-line. 492 493 500-enter-request. 494***** Initialize job request data ***** 495***** Accept job skill field ***** 496 MOVE "n" to job-escape 497 PERFORM UNTIL ok-enter-request or esc-code-m 498 OR esc-code-p 499 SET not-valid-field TO TRUE 500 PERFORM UNTIL valid-field OR esc-code-m 501 OR esc-code-p 502 ACCEPT enter-ws-skill 503 ON ESCAPE PERFORM 900-on-escape 504 END-ACCEPT 505 IF NOT esc-code-m OR NOT esc-code-p THEN 506 EVALUATE ws-skill 507 WHEN 1 THRU 5 508 SET valid-field TO TRUE 509 WHEN OTHER 510 MOVE 511 "Select skill number 1,2,3,4 or 5 only." 512 TO msg-line1 513 DISPLAY job-msg-line 514 END-EVALUATE 515 END-IF 516 END-PERFORM 517 SET not-valid-field TO TRUE 518 519***** Accept Start date field ***** 520 SET not-valid-field TO TRUE 521 PERFORM UNTIL valid-field OR esc-code-m 522 OR esc-code-p * Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 10 * api.cbl 523 ACCEPT enter-J-start-scr ON ESCAPE 524 PERFORM 900-on-escape 525 END-ACCEPT 526 IF NOT esc-code-m OR esc-code-p THEN 527 EVALUATE TRUE 528 WHEN valid-day AND valid-mth 529 SET valid-field TO TRUE 530 WHEN OTHER 531 MOVE 532 "Invalid date! Use dd/mm/year format." 533 TO msg-line1 534 DISPLAY job-msg-line 535 END-EVALUATE 536 END-IF 537 END-PERFORM 538 539***** Accept daily hours field ***** 540 SET not-valid-field TO TRUE 541 PERFORM UNTIL valid-field OR esc-code-m 542 OR esc-code-p 543 DISPLAY enter-daily-hrs 544 ACCEPT enter-daily-hrs ON ESCAPE 545 PERFORM 900-on-escape 546 END-ACCEPT 547 IF NOT esc-code-m OR NOT esc-code-p THEN 548 IF (ws-J-dailyHours > 0) AND 549 (ws-J-dailyHours < 24) THEN 550 SET valid-field TO TRUE 551 ELSE 552 MOVE 553 "Not a valid amount of hours in a day. Use 1 to 23 only." 554 TO msg-line1 555 DISPLAY job-msg-line 556 END-IF 557 END-IF 558 END-PERFORM 559 SET not-valid-field TO TRUE 560 561***** Accept Daily rate field ***** 562 SET not-valid-field TO TRUE 563 PERFORM UNTIL valid-field OR esc-code-m 564 OR esc-code-p 565 ACCEPT J-daily-rate-scr ON ESCAPE 566 PERFORM 900-on-escape 567 END-ACCEPT 568 IF NOT esc-code-m OR NOT esc-code-p THEN 569 IF valid-J-dailyrate THEN 570 SET valid-field TO TRUE 571 ELSE 572 MOVE "Invalid daily rate. Value must exceed 1." 573 TO msg-line1 574 DISPLAY job-msg-line 575 END-IF 576 END-IF 577 END-PERFORM 578 579***** Accept Report to (name)field ***** 580 SET not-valid-field TO TRUE * Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 11 * api.cbl 581 ACCEPT J-rptName-scr ON ESCAPE 582 PERFORM 900-on-escape 583 END-ACCEPT 584 585***** Accept Report to (Address) field ***** 586 ACCEPT J-rptAddr1-scr ON ESCAPE 587 PERFORM 900-on-escape 588 END-ACCEPT 589 ACCEPT J-rptAddr2-scr ON ESCAPE 590 PERFORM 900-on-escape 591 END-ACCEPT 592 593***** Accept Report to (Telephone no.) field ***** 594 ACCEPT J-rptPhonecode-scr ON ESCAPE PERFORM 900-on-escape 595 END-ACCEPT 596 ACCEPT J-rptPhoneNo-scr 597 INSPECT ws-J-rptPhone 598 REPLACING ALL SPACES BY ZEROS 599 DISPLAY J-rptPhone-scr 600 601***** check if there is any need to change the data ***** 602 MOVE 603 "Do you wish to make changes to the record?(y/n):" 604 TO msg-line1 605 DISPLAY job-msg-line 606 ACCEPT confirm-ok-scr ON ESCAPE 607 PERFORM 900-on-escape 608 END-ACCEPT 609 MOVE SPACES TO msg-line1 610 DISPLAY job-msg-line 611 END-PERFORM 612 . 613 614 520-process-confirmation. 615***** to process the job request or not ***** 616 IF NOT esc-code-m OR NOT esc-code-p THEN 617 MOVE 618 "Do you wish to process the record ?(y/n):" 619 TO msg-line1 620 DISPLAY job-msg-line 621 ACCEPT confirm-ok-scr ON ESCAPE 622 PERFORM 900-on-escape 623 END-ACCEPT 624 625 IF yes-more-rec then 626 PERFORM 530-move-to-file 627 PERFORM 540-save-job-request 628 PERFORM 560-reset-data 629 END-IF 630 END-IF 631 . 632 633 530-move-to-file. 634***** to move the data to job-file ***** 635 MOVE ws-skill to J-title 636 MOVE temp-date TO J-start 637 MOVE ws-J-dailyHours to J-dailyHours 638 MOVE ws-J-dailyrate TO J-dailyrate * Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 12 * api.cbl 639 MOVE ws-J-rptName TO J-rptName 640 MOVE ws-J-rptAddr1 TO J-rptAddr1 641 MOVE ws-J-rptAddr2 TO J-rptAddr2 642 MOVE ws-J-rptPhone TO J-rptPhone 643 MOVE 1 TO J-status 644***** to move the data to job-file ***** 645 MOVE ZEROS TO A-daysworked-week 646 MOVE ZEROS TO A-daysworked-total 647 . 648 649 540-save-job-request. 650***** to save the job request ***** 651 MOVE last-J-no to J-no 652***** write into job file ***** 653 DISPLAY J-no 654 WRITE Job-data 655 INVALID KEY 656 DISPLAY "FILE ERROR UNABLE TO SAVE" 657 NOT INVALID KEY 658 DISPLAY "RECORD SAVED !!!" 659 ADD 1 TO last-J-no 660 OPEN OUTPUT lastjob 661 WRITE last-J-no 662 CLOSE lastjob 663 END-WRITE 664 . 665 666 560-reset-data. 667***** to move the data to job-file ***** 668 MOVE 0 to ws-skill 669 MOVE 0 TO temp-date 670 MOVE 0 to ws-J-dailyHours 671 MOVE 0 TO ws-J-dailyrate 672 MOVE spaces TO ws-J-rptName 673 MOVE spaces TO ws-J-rptAddr1 674 MOVE spaces TO ws-J-rptAddr2 675 MOVE spaces TO ws-J-rptPhone 676 . 677 678 600-job-query-menu. 679***** to search a worker for the job request ***** 680 SET option-no2 TO TRUE 681 DISPLAY ERASE 682 PERFORM 610-job-query UNTIL 683 (ok-enter-request OR esc-code-m OR esc-code-p) 684 . 685 686 610-job-query. 687***** to search a worker for the job request ***** 688 OPEN INPUT lastjob 689 READ lastjob 690 END-READ 691 CLOSE lastjob 692 IF NOT (esc-code-m OR esc-code-p) THEN 693 DISPLAY ERASE 694 MOVE "n" TO job-escape 695 MOVE SPACES TO ws-enter 696 PERFORM 035-clear-msg-line * Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 13 * api.cbl 697 PERFORM 100-screen-border 698 DISPLAY new-job-scr 699 DISPLAY job-no-scr 700 ACCEPT job-no-scr ON ESCAPE 701 PERFORM 900-on-escape 702 END-ACCEPT 703 IF NOT (esc-code-m OR esc-code-p) THEN 704 MOVE ws-J-no TO J-no 705 READ Job-file 706 INVALID KEY 707 MOVE 708 "That Job Number is not found." 709 TO msg-line2 710 DISPLAY job-msg-line 711 DISPLAY confirm-ok-scr 712 ACCEPT confirm-ok-scr 713 ON ESCAPE PERFORM 900-on-escape 714 NOT INVALID KEY 715 MOVE J-Cid TO C-id 716 READ Client-file 717 INVALID KEY 718 MOVE 719 "That Client is not found." 720 TO msg-line2 721 DISPLAY confirm-ok-scr 722 ACCEPT confirm-ok-scr 723 ON ESCAPE PERFORM 900-on-escape 724 NOT INVALID KEY 725 DISPLAY Client-scr 726 PERFORM 660-move-data 727 DISPLAY job-request-data-entry 728 DISPLAY J-Cid AT 0625 729 EVALUATE TRUE 730 WHEN option-no2 731 PERFORM 630-change-J-status 732 PERFORM 620-another-query-yn 733 WHEN option-no3 734 PERFORM 710-process-job-yn 735 PERFORM 620-another-query-yn 736 WHEN option-no4 737 SET ok-valid-worker TO TRUE 738 END-EVALUATE 739 END-READ 740 END-READ 741 ELSE 742 MOVE 743 "That Job Number is not found." 744 TO msg-line2 745 DISPLAY job-msg-line 746 DISPLAY confirm-ok-scr 747 ACCEPT confirm-ok-scr 748 ON ESCAPE PERFORM 900-on-escape 749 END-IF 750 END-IF 751 . 752 620-another-query-yn. 753***** process another job request or not ***** 754 MOVE * Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 14 * api.cbl 755 "Another record?(y/n):" 756 TO msg-line1 757 DISPLAY job-msg-line 758 ACCEPT ws-enter AT 2242 WITH AUTO 759 ON ESCAPE PERFORM 900-on-escape 760 . 761 630-change-J-status. 762***** Change the job status on or off ***** 763 MOVE 764 "Please enter status of job ([o]ngoing, [c]ompleted)" 765 TO msg-line1 766 MOVE 767 "Any other key to leave value as it is.:" 768 TO msg-line2 769 DISPLAY job-msg-line 770 ACCEPT ws-J-status AT 2243 771 EVALUATE TRUE 772 WHEN o-J-status 773 MOVE 0 TO J-status 774 WHEN c-J-status 775 MOVE 1 TO J-status 776 END-EVALUATE 777 . 778 779 660-move-data. 780***** to move the data to job-file ***** 781 MOVE J-title TO ws-skill 782 MOVE J-start TO temp-date 783 MOVE J-dailyHours TO ws-J-dailyHours 784 MOVE J-dailyrate TO ws-J-dailyrate 785 MOVE J-rptName TO ws-J-rptName 786 MOVE J-rptaddr1 TO ws-J-rptAddr1 787 MOVE J-rptaddr2 TO ws-J-rptAddr2 788 MOVE J-rptPhone TO ws-J-rptPhone 789 . 790 791 700-process-job. 792***** process the job request ***** 793 DISPLAY ERASE 794 PERFORM 610-job-query UNTIL 795 ok-enter-request OR esc-code-m OR esc-code-p 796 . 797 798 710-process-job-yn. 799***** procedure when escape key is pressed ***** 800 MOVE 1 TO W-id 801 MOVE 60 TO line-count 802 EVALUATE J-title 803 WHEN 1 THEN MOVE "Book-keeping" TO pr-skills 804 WHEN 2 THEN MOVE "Filing" TO pr-skills 805 WHEN 3 THEN MOVE "Stenography" TO pr-skills 806 WHEN 4 THEN MOVE "Typing" TO pr-skills 807 WHEN 5 THEN MOVE "Word Processing" TO pr-skills 808 END-EVALUATE 809***** inform user the file to print out ***** 810 MOVE 811 "Please quit and print file 'assign.rpt'." 812 TO msg-line1 * Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 15 * api.cbl 813 DISPLAY job-msg-line 814 ACCEPT ws-enter AT 2242 WITH AUTO 815 ON ESCAPE PERFORM 900-on-escape 816 END-ACCEPT 817 PERFORM 720-write-assign-file 818 PERFORM UNTIL yes-eof OR esc-code-m 819 OR esc-code-p 820 READ worker-file NEXT RECORD 821 AT END 822 SET yes-eof TO TRUE 823 NOT AT end 824 EVALUATE J-title 825 WHEN 1 826 IF W-book >= 1 THEN 827 PERFORM 720-write-assign-file 828 WHEN 2 829 IF W-file >= 1 THEN 830 PERFORM 720-write-assign-file 831 WHEN 3 832 IF W-steno >= 1 THEN 833 PERFORM 720-write-assign-file 834 WHEN 4 835 IF W-type >= 1 THEN 836 PERFORM 720-write-assign-file 837 WHEN 5 838 IF W-word >= 1 THEN 839 PERFORM 720-write-assign-file 840 END-EVALUATE 841 END-READ 842 END-PERFORM 843 . 844 845 720-write-assign-file. 846***** create report layout for all possible employee ***** 847***** write header ***** 848 IF line-count = 60 THEN 849 write print-rec FROM pr-job-header2 850 write print-rec FROM pr-job-header3 851 MOVE 1 TO line-count 852 ELSE 853***** write details ***** 854 MOVE W-id TO pr-E-id 855 MOVE W-name TO pr-E-name 856 MOVE W-sex TO pr-E-sex 857 MOVE W-phoneCode TO pr-E-telcode 858 MOVE W-phoneNo TO pr-E-telno 859 860 WRITE print-rec FROM pr-job-details 861 ADD 1 TO line-count 862 IF line-count = 60 THEN 863 WRITE print-rec FROM pr-job-header2 864 AFTER ADVANCING PAGE 865 WRITE print-rec FROM pr-job-header3 866 MOVE 1 TO line-count 867 END-IF 868 END-IF 869***** ***** 870 . * Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 16 * api.cbl 871 872 800-assign-worker-job. 873***** process the job request ***** 874 DISPLAY ERASE 875 PERFORM 610-job-query 876 SET not-valid-worker TO TRUE 877 PERFORM UNTIL ok-enter-request OR esc-code-m 878 OR esc-code-p 879 MOVE 880 "Please enter worker ID no. to be assigned the job:" 881 TO msg-line1 882 DISPLAY job-msg-line 883 ACCEPT ws-worker AT 2153 WITH AUTO 884 ON ESCAPE PERFORM 900-on-escape 885 END-ACCEPT 886 887***** Validate if worker has required skill ***** 888 MOVE ws-worker TO W-id 889 READ worker-file 890 INVALID KEY 891 MOVE 892 "Invalid WORKER ID no. PRESS ANY KEY TO CONTINUE" 893 TO msg-line2 894 DISPLAY job-msg-line 895 ACCEPT dummy AT 2153 WITH AUTO 896 ON ESCAPE PERFORM 900-on-escape 897 END-ACCEPT 898 NOT INVALID KEY 899 IF W-Status = "A" THEN 900 PERFORM 810-write-assignment 901 MOVE 902 "See Assignment.dat PRESS ANY KEY TO CONINUE" 903 TO msg-line2 904 DISPLAY job-msg-line 905 ACCEPT dummy AT 2153 WITH TIMEOUT +2 906 ON ESCAPE PERFORM 900-on-escape 907 END-ACCEPT 908 ELSE 909 MOVE 910 "Invalid WORKER ID no. PRESS ANY KEY TO CONTINUE" 911 TO msg-line2 912 DISPLAY job-msg-line 913 ACCEPT dummy AT 2153 WITH AUTO 914 ON ESCAPE PERFORM 900-on-escape 915 END-ACCEPT 916 END-IF 917 END-READ 918 MOVE SPACES TO msg-line2 919***** write into assignment file if valid ***** 920 921***** Inquire if any other worker needs to be assigned ***** 922 923 PERFORM 620-another-query-yn 924 END-PERFORM 925 . 926 927 810-write-assignment. 928***** ***** * Micro Focus COBOL for Unix V3.1 revision 035 29-Oct-97 02:22 Page 17 * api.cbl 929 MOVE W-id TO A-Wid 930 MOVE J-no TO A-JobNo 931 MOVE ZEROS TO A-ratedate 932 MOVE ZEROS TO A-Wrating 933 MOVE ZEROS TO A-daysworked-week 934 935 MOVE ZEROS TO A-daysworked-total 936 WRITE Assign-data 937 . 938 939 940 900-on-escape. 941***** procedure when escape key is pressed ***** 942 ACCEPT job-escape at 2364 WITH AUTO 943 END-ACCEPT 944 MOVE FUNCTION UPPER-CASE (job-escape) 945 TO job-escape 946 EVALUATE job-escape 947 WHEN "M" 948 SET esc-code-m TO TRUE 949 WHEN "H" 950 SET esc-code-p TO TRUE 951 CALL 952 "/users/students/df9609/df960934/project/help" 953 USING BY CONTENT Jhelp-esc-code 954 955 CANCEL 956 "/users/students/df9609/df960934/project/help" 957 WHEN "P" 958 SET esc-code-p TO TRUE 959 END-EVALUATE 960 . 961 * Micro Focus COBOL for Unix V3.1 revision 035 Compiler * Copyright (C) 1984-1993 Micro Focus Ltd. URN AXUEX/BMB/00915L * REF GNB-063053004A9 * * Total Messages: 0 * Data: 5576 Code: 6517