Created
February 6, 2026 01:35
-
-
Save tmzt/3a8632d3a07896bb66e9d8e61598f54c to your computer and use it in GitHub Desktop.
DODFACILITY.cob
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| * | |
| * Code generated with Gemini 3 Pro | |
| * | |
| IDENTIFICATION DIVISION. | |
| PROGRAM-ID. DOD-LOGISTICS. | |
| AUTHOR. GEMINI. | |
| DATE-WRITTEN. 2023-10-27. | |
| ENVIRONMENT DIVISION. | |
| CONFIGURATION SECTION. | |
| DATA DIVISION. | |
| WORKING-STORAGE SECTION. | |
| *----------------------------------------------------------------- | |
| * SYSTEM FLAGS AND COUNTERS | |
| *----------------------------------------------------------------- | |
| 01 SYSTEM-FLAGS. | |
| 05 WS-EXIT-FLAG PIC X(1) VALUE 'N'. | |
| 88 SHUTDOWN-REQ VALUE 'Y'. | |
| 05 WS-ITEM-COUNT PIC 9(3) VALUE 0. | |
| 05 WS-USER-CHOICE PIC 9(1). | |
| 05 WS-SEARCH-ID PIC 9(4). | |
| 05 WS-UPDATE-AMT PIC S9(8). | |
| 05 WS-FOUND-FLAG PIC X(1). | |
| *----------------------------------------------------------------- | |
| * INVENTORY DATA STRUCTURE (TABLE) | |
| *----------------------------------------------------------------- | |
| 01 INVENTORY-TABLE. | |
| 05 SUPPLY-ITEM OCCURS 100 TIMES INDEXED BY ITEM-IDX. | |
| 10 ITEM-ID PIC 9(4). | |
| 10 ITEM-NAME PIC X(20). | |
| 10 ITEM-QTY PIC S9(8). | |
| 10 REORDER-LEVEL PIC 9(8). | |
| 10 ITEM-UNIT PIC X(8). | |
| *----------------------------------------------------------------- | |
| * REPORT FORMATTING VARIABLES | |
| *----------------------------------------------------------------- | |
| 01 REPORT-LINE. | |
| 05 RL-ID PIC 9(4). | |
| 05 FILLER PIC X(2) VALUE SPACES. | |
| 05 RL-NAME PIC X(20). | |
| 05 FILLER PIC X(2) VALUE SPACES. | |
| 05 RL-QTY PIC Z(7)9. | |
| 05 FILLER PIC X(2) VALUE SPACES. | |
| 05 RL-STATUS PIC X(10). | |
| PROCEDURE DIVISION. | |
| 000-MAIN-LOGIC. | |
| PERFORM 100-INITIALIZE-DATA | |
| PERFORM UNTIL SHUTDOWN-REQ | |
| PERFORM 200-DISPLAY-MENU | |
| PERFORM 300-PROCESS-CHOICE | |
| END-PERFORM | |
| DISPLAY "SYSTEM SHUTDOWN COMPLETE." | |
| STOP RUN. | |
| *----------------------------------------------------------------- | |
| * 100-INITIALIZE-DATA | |
| * Loads dummy data into the table. | |
| *----------------------------------------------------------------- | |
| 100-INITIALIZE-DATA. | |
| ADD 1 TO WS-ITEM-COUNT | |
| SET ITEM-IDX TO WS-ITEM-COUNT | |
| MOVE 1001 TO ITEM-ID(ITEM-IDX) | |
| MOVE "JP-8 AVIATION FUEL" TO ITEM-NAME(ITEM-IDX) | |
| MOVE 50000 TO ITEM-QTY(ITEM-IDX) | |
| MOVE 10000 TO REORDER-LEVEL(ITEM-IDX) | |
| MOVE "GALLONS" TO ITEM-UNIT(ITEM-IDX). | |
| ADD 1 TO WS-ITEM-COUNT | |
| SET ITEM-IDX TO WS-ITEM-COUNT | |
| MOVE 2055 TO ITEM-ID(ITEM-IDX) | |
| MOVE "MRE RATIONS (CASE)" TO ITEM-NAME(ITEM-IDX) | |
| MOVE 500 TO ITEM-QTY(ITEM-IDX) | |
| MOVE 100 TO REORDER-LEVEL(ITEM-IDX) | |
| MOVE "CASES" TO ITEM-UNIT(ITEM-IDX). | |
| ADD 1 TO WS-ITEM-COUNT | |
| SET ITEM-IDX TO WS-ITEM-COUNT | |
| MOVE 4012 TO ITEM-ID(ITEM-IDX) | |
| MOVE "HMMWV RUN-FLATS" TO ITEM-NAME(ITEM-IDX) | |
| MOVE 40 TO ITEM-QTY(ITEM-IDX) | |
| MOVE 12 TO REORDER-LEVEL(ITEM-IDX) | |
| MOVE "UNITS" TO ITEM-UNIT(ITEM-IDX). | |
| *----------------------------------------------------------------- | |
| * 200-DISPLAY-MENU | |
| *----------------------------------------------------------------- | |
| 200-DISPLAY-MENU. | |
| DISPLAY " ". | |
| DISPLAY "=======================================". | |
| DISPLAY " DOD FACILITY COMMAND CENTER (COBOL)". | |
| DISPLAY "=======================================". | |
| DISPLAY "1. VIEW STATUS REPORT". | |
| DISPLAY "2. UPDATE INVENTORY STOCK". | |
| DISPLAY "3. EXIT SYSTEM". | |
| DISPLAY "ENTER SELECTION: " WITH NO ADVANCING. | |
| ACCEPT WS-USER-CHOICE. | |
| *----------------------------------------------------------------- | |
| * 300-PROCESS-CHOICE | |
| * Directs flow based on user input. | |
| *----------------------------------------------------------------- | |
| 300-PROCESS-CHOICE. | |
| EVALUATE WS-USER-CHOICE | |
| WHEN 1 | |
| PERFORM 400-GENERATE-REPORT | |
| WHEN 2 | |
| PERFORM 500-UPDATE-STOCK | |
| WHEN 3 | |
| MOVE 'Y' TO WS-EXIT-FLAG | |
| WHEN OTHER | |
| DISPLAY "INVALID COMMAND. TRY AGAIN." | |
| END-EVALUATE. | |
| *----------------------------------------------------------------- | |
| * 400-GENERATE-REPORT | |
| * Iterates through the table and prints status. | |
| *----------------------------------------------------------------- | |
| 400-GENERATE-REPORT. | |
| DISPLAY " ". | |
| DISPLAY "ID ITEM NAME CURRENT STATUS". | |
| DISPLAY "---- -------------------- -------- ----------". | |
| PERFORM VARYING ITEM-IDX FROM 1 BY 1 | |
| UNTIL ITEM-IDX > WS-ITEM-COUNT | |
| MOVE ITEM-ID(ITEM-IDX) TO RL-ID | |
| MOVE ITEM-NAME(ITEM-IDX) TO RL-NAME | |
| MOVE ITEM-QTY(ITEM-IDX) TO RL-QTY | |
| IF ITEM-QTY(ITEM-IDX) <= REORDER-LEVEL(ITEM-IDX) | |
| MOVE "CRITICAL!" TO RL-STATUS | |
| ELSE | |
| MOVE "NOMINAL" TO RL-STATUS | |
| END-IF | |
| DISPLAY REPORT-LINE | |
| END-PERFORM | |
| DISPLAY "--------------------------------------------------". | |
| *----------------------------------------------------------------- | |
| * 500-UPDATE-STOCK | |
| * Finds an item by ID and modifies the quantity. | |
| *----------------------------------------------------------------- | |
| 500-UPDATE-STOCK. | |
| DISPLAY "ENTER ITEM ID TO UPDATE: " WITH NO ADVANCING. | |
| ACCEPT WS-SEARCH-ID. | |
| MOVE 'N' TO WS-FOUND-FLAG. | |
| PERFORM VARYING ITEM-IDX FROM 1 BY 1 | |
| UNTIL ITEM-IDX > WS-ITEM-COUNT OR WS-FOUND-FLAG = 'Y' | |
| IF ITEM-ID(ITEM-IDX) = WS-SEARCH-ID | |
| DISPLAY "ITEM FOUND: " ITEM-NAME(ITEM-IDX) | |
| DISPLAY "CURRENT QTY: " ITEM-QTY(ITEM-IDX) | |
| DISPLAY "ENTER CHANGE AMOUNT (+/-): " | |
| WITH NO ADVANCING | |
| ACCEPT WS-UPDATE-AMT | |
| ADD WS-UPDATE-AMT TO ITEM-QTY(ITEM-IDX) | |
| DISPLAY "NEW QTY: " ITEM-QTY(ITEM-IDX) | |
| MOVE 'Y' TO WS-FOUND-FLAG | |
| END-IF | |
| END-PERFORM. | |
| IF WS-FOUND-FLAG = 'N' | |
| DISPLAY "ERROR: ITEM ID NOT FOUND." | |
| END-IF. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment