Advertisement
nBiker77

customer-management.cbl

Dec 14th, 2024
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.87 KB | None | 0 0
  1.        IDENTIFICATION DIVISION.
  2.        PROGRAM-ID. CUSTOMER-MANAGEMENT.
  3.        *>AUTHOR.                    Natxo Varona.
  4.        *>INSTALLATION.              NEW CURSO COBOL 2024.
  5.        *>DATE-WRITTEN.              11/12/2024.
  6.        *>DATE-COMPILED.
  7.        *>SECURITY.                  NO ES CONFIDENCIAL.
  8.        *>--------------------------------------------------------------*
  9.        *>OBJETIVO:CREAR MENU CRUD DE CLIENTES Y CONECTAR Y GUARDAR     *
  10.        *>         LOS DATOS EN UNA TABLA DE SQL                        *
  11.        *>--------------------------------------------------------------*
  12.  
  13.        ENVIRONMENT DIVISION.
  14.        CONFIGURATION SECTION.
  15.        SOURCE-COMPUTER. PC.
  16.        OBJECT-COMPUTER. PC.
  17.  
  18.        INPUT-OUTPUT SECTION.
  19.        FILE-CONTROL.
  20.            SELECT CUSTOMER-FILE ASSIGN TO "customers.dat"
  21.            ORGANIZATION IS INDEXED
  22.            ACCESS MODE IS DYNAMIC
  23.            RECORD KEY IS CUSTOMER-ID
  24.            FILE STATUS IS FILE-STATUS.
  25.  
  26.        DATA DIVISION.
  27.        FILE SECTION.
  28.        FD CUSTOMER-FILE.
  29.        01 CUSTOMER-RECORD.
  30.            05 CUSTOMER-ID       PIC 9(6).
  31.            05 CUSTOMER-NAME     PIC X(30).
  32.            05 CUSTOMER-ADDRESS  PIC X(50).
  33.            05 CUSTOMER-PHONE    PIC X(15).
  34.            05 CUSTOMER-EMAIL    PIC X(50).
  35.  
  36.        WORKING-STORAGE SECTION.
  37.        01 WS-VARS.
  38.            05 MENU-OPTION      PIC 9 VALUE 0.
  39.            05 FILE-STATUS      PIC XX.
  40.            05 WS-EOF          PIC X VALUE 'N'.
  41.            05 CONTINUE-OPTION  PIC X VALUE 'S'.
  42.  
  43.        01 WS-CURRENT-DATE-DATA.
  44.            05 WS-CURRENT-DATE.
  45.                10 WS-CURRENT-YEAR  PIC 9(4).
  46.                10 WS-CURRENT-MONTH PIC 9(2).
  47.                10 WS-CURRENT-DAY   PIC 9(2).
  48.  
  49.        PROCEDURE DIVISION.
  50.        MAIN-PROGRAM.
  51.            PERFORM INIT-PROGRAM.
  52.            PERFORM UNTIL MENU-OPTION = 6
  53.                DISPLAY SPACE
  54.                DISPLAY "*** SISTEMA DE GESTION DE CLIENTES ***"
  55.                DISPLAY "1. Inicializar Archivo"
  56.                DISPLAY "2. Alta de Cliente"
  57.                DISPLAY "3. Baja de Cliente"
  58.                DISPLAY "4. Modificacion de Cliente"
  59.                DISPLAY "5. Listado de Clientes"
  60.                DISPLAY "6. Salir"
  61.                DISPLAY "Seleccione una opcion: " WITH NO ADVANCING
  62.                ACCEPT MENU-OPTION
  63.  
  64.                EVALUATE MENU-OPTION
  65.                    WHEN 1
  66.                        PERFORM INIT-FILE
  67.                    WHEN 2
  68.                        PERFORM ADD-CUSTOMER
  69.                    WHEN 3
  70.                        PERFORM DELETE-CUSTOMER
  71.                    WHEN 4
  72.                        PERFORM UPDATE-CUSTOMER
  73.                    WHEN 5
  74.                        PERFORM LIST-CUSTOMERS
  75.                    WHEN 6
  76.                        PERFORM END-PROGRAM
  77.                    WHEN OTHER
  78.                        DISPLAY "Opcion no válida."
  79.                END-EVALUATE
  80.            END-PERFORM.
  81.            STOP RUN.
  82.  
  83.        INIT-PROGRAM.
  84.            OPEN I-O CUSTOMER-FILE
  85.            IF FILE-STATUS = "35"
  86.                OPEN OUTPUT CUSTOMER-FILE
  87.                CLOSE CUSTOMER-FILE
  88.                DISPLAY "Archivo inicializado."
  89.            END-IF
  90.            CLOSE CUSTOMER-FILE.
  91.  
  92.        INIT-FILE.
  93.            OPEN OUTPUT CUSTOMER-FILE
  94.            CLOSE CUSTOMER-FILE
  95.            DISPLAY "Archivo reinicializado correctamente.".
  96.  
  97.        ADD-CUSTOMER.
  98.            OPEN I-O CUSTOMER-FILE
  99.            DISPLAY SPACE
  100.            DISPLAY "ALTA DE CLIENTE"
  101.            DISPLAY "ID Cliente (6 dígitos): " WITH NO ADVANCING
  102.            ACCEPT CUSTOMER-ID
  103.            DISPLAY "Nombre: " WITH NO ADVANCING
  104.            ACCEPT CUSTOMER-NAME
  105.            DISPLAY "Direccion: " WITH NO ADVANCING
  106.            ACCEPT CUSTOMER-ADDRESS
  107.            DISPLAY "Telefono: " WITH NO ADVANCING
  108.            ACCEPT CUSTOMER-PHONE
  109.            DISPLAY "Email: " WITH NO ADVANCING
  110.            ACCEPT CUSTOMER-EMAIL
  111.  
  112.            WRITE CUSTOMER-RECORD
  113.                INVALID KEY
  114.                    DISPLAY "Error: ID de cliente ya existe."
  115.                NOT INVALID KEY
  116.                    DISPLAY "Cliente añadido correctamente."
  117.            END-WRITE
  118.  
  119.            CLOSE CUSTOMER-FILE.
  120.  
  121.        DELETE-CUSTOMER.
  122.            OPEN I-O CUSTOMER-FILE
  123.            DISPLAY SPACE
  124.            DISPLAY "BAJA DE CLIENTE"
  125.            DISPLAY "ID Cliente a eliminar: " WITH NO ADVANCING
  126.            ACCEPT CUSTOMER-ID
  127.  
  128.            DELETE CUSTOMER-FILE RECORD
  129.                INVALID KEY
  130.                    DISPLAY "Error: Cliente no encontrado."
  131.                NOT INVALID KEY
  132.                    DISPLAY "Cliente eliminado correctamente."
  133.            END-DELETE
  134.  
  135.            CLOSE CUSTOMER-FILE.
  136.  
  137.        UPDATE-CUSTOMER.
  138.            OPEN I-O CUSTOMER-FILE
  139.            DISPLAY SPACE
  140.            DISPLAY "MODIFICACIÓN DE CLIENTE"
  141.            DISPLAY "ID Cliente a modificar: " WITH NO ADVANCING
  142.            ACCEPT CUSTOMER-ID
  143.  
  144.            READ CUSTOMER-FILE
  145.                INVALID KEY
  146.                    DISPLAY "Error: Cliente no encontrado."
  147.                NOT INVALID KEY
  148.                    DISPLAY "Datos actuales:"
  149.                    DISPLAY "Nombre: " CUSTOMER-NAME
  150.                    DISPLAY "Direccion: " CUSTOMER-ADDRESS
  151.                    DISPLAY "Telefono: " CUSTOMER-PHONE
  152.                    DISPLAY "Email: " CUSTOMER-EMAIL
  153.  
  154.                    DISPLAY SPACE
  155.                    DISPLAY "Nuevos datos:"
  156.                    DISPLAY "Nombre: " WITH NO ADVANCING
  157.                    ACCEPT CUSTOMER-NAME
  158.                    DISPLAY "Direccion: " WITH NO ADVANCING
  159.                    ACCEPT CUSTOMER-ADDRESS
  160.                    DISPLAY "Telefono: " WITH NO ADVANCING
  161.                    ACCEPT CUSTOMER-PHONE
  162.                    DISPLAY "Email: " WITH NO ADVANCING
  163.                    ACCEPT CUSTOMER-EMAIL
  164.  
  165.                    REWRITE CUSTOMER-RECORD
  166.                        INVALID KEY
  167.                            DISPLAY "Error al actualizar cliente."
  168.                        NOT INVALID KEY
  169.                            DISPLAY "Cliente modificado correctamente."
  170.                    END-REWRITE
  171.            END-READ
  172.  
  173.            CLOSE CUSTOMER-FILE.
  174.  
  175.        LIST-CUSTOMERS.
  176.            OPEN INPUT CUSTOMER-FILE
  177.            DISPLAY SPACE
  178.            DISPLAY "LISTADO DE CLIENTES"
  179.            DISPLAY "ID    Nombre                          Telefono"
  180.            DISPLAY "------------------------------------------------"
  181.  
  182.            MOVE 'N' TO WS-EOF
  183.            READ CUSTOMER-FILE
  184.                AT END MOVE 'Y' TO WS-EOF
  185.            END-READ
  186.  
  187.            PERFORM UNTIL WS-EOF = 'Y'
  188.                DISPLAY CUSTOMER-ID "  "
  189.                        CUSTOMER-NAME "  "
  190.                        CUSTOMER-PHONE
  191.                READ CUSTOMER-FILE
  192.                    AT END MOVE 'Y' TO WS-EOF
  193.                END-READ
  194.            END-PERFORM
  195.  
  196.            CLOSE CUSTOMER-FILE.
  197.  
  198.        END-PROGRAM.
  199.            DISPLAY "Programa finalizado.".
  200.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement