Advertisement
vinicius_oliveira

crudPessoasProdutoPedido

May 31st, 2022
1,851
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
COBOL 22.56 KB | None | 0 0
  1.       ******************************************************************
  2.       * Author:
  3.       * Date:
  4.       * Purpose:
  5.       * Tectonics: cobc
  6.       ******************************************************************
  7.        IDENTIFICATION DIVISION.
  8.        PROGRAM-ID. CRUDPESSOAS.
  9.        ENVIRONMENT DIVISION.
  10.         INPUT-OUTPUT SECTION.
  11.             FILE-CONTROL.
  12.             SELECT CLIENTES ASSIGN TO
  13.                        "C:\Arquivos\clientes.txt"
  14.             ORGANISATION IS INDEXED
  15.             ACCESS IS DYNAMIC
  16.             RECORD KEY IS COD-CLIENTE
  17.             FILE STATUS IS WS-FSCLI.
  18.  
  19.       ******************************************************************
  20.  
  21.             SELECT PRODUTOS ASSIGN TO
  22.                        "C:\Arquivos\produtos.txt"
  23.             ORGANISATION IS INDEXED
  24.             ACCESS IS DYNAMIC
  25.             RECORD KEY IS COD-PRODUTO
  26.             FILE STATUS IS WS-FSPROD.
  27.       ******************************************************************
  28.  
  29.             SELECT PEDIDOS ASSIGN TO
  30.                        "C:\Arquivos\pedidos.txt"
  31.             ORGANISATION IS INDEXED
  32.             ACCESS IS DYNAMIC
  33.             RECORD KEY IS COD-PEDIDO
  34.             FILE STATUS IS WS-FSPV.
  35.  
  36.        DATA DIVISION.
  37.         FILE SECTION.
  38.            FD CLIENTES.
  39.            01 REG-CLIENTE.
  40.               03 COD-CLIENTE   PIC 9(03).
  41.               03 NOME-CLIENTE  PIC X(25).
  42.               03 RG-CLIENTE    PIC X(15).
  43.               03 TEL-CLIENTE   PIC X(13).
  44.  
  45.            FD PRODUTOS.
  46.            01 REG-PRODUTO.
  47.               03 COD-PRODUTO   PIC 9(03).
  48.               03 NOME-PRODUTO  PIC X(25).
  49.               03 PRECO-PRODUTO PIC 9(06)V99.
  50.  
  51.            FD PEDIDOS.
  52.            01 REG-PEDIDO.
  53.               03 COD-PEDIDO        PIC 9(03).
  54.               03 PV-COD-CLI        PIC 9(03).
  55.               03 PV-NOME-CLI       PIC X(25).
  56.               03 PV-RG-CLI         PIC X(15).
  57.               03 PV-TEL-CLI        PIC X(13).
  58.               03 PV-COD-PRODUTO    PIC 9(03).
  59.               03 PV-NOME-PRODUTO   PIC X(25).
  60.               03 PV-PRECO-PRODUTO  PIC 9(06)V99.
  61.               03 PV-QTD            PIC 9(03).
  62.               03 PV-VALOR-TOTAL    PIC 9(09)V99.
  63.  
  64.        WORKING-STORAGE SECTION.
  65.            01 WS-FSCLI         PIC 9(02).
  66.            01 WS-FSPROD        PIC 9(02).
  67.            01 WS-FSPV          PIC 9(02).
  68.  
  69.            01 WS-EOF-CLI       PIC 9.
  70.            01 WS-EOF-PROD      PIC 9.
  71.            01 WS-EOF-PV        PIC 9.
  72.  
  73.            01 WS-OPC           PIC X.
  74.            01 WS-CLIENTE.
  75.                03 WS-COD-CLIENTE   PIC 9(03).
  76.                03 WS-NOME-CLIENTE  PIC X(25).
  77.                03 WS-RG-CLIENTE    PIC X(15).
  78.                03 WS-TEL-CLIENTE   PIC X(13).
  79.  
  80.            01 WS-PRODUTO.
  81.               03 WS-COD-PRODUTO   PIC 9(03).
  82.               03 WS-NOME-PRODUTO  PIC X(25).
  83.               03 WS-PRECO-PRODUTO PIC 9(06)V99.
  84.  
  85.            01 WS-PEDIDO.
  86.               03 WS-COD-PEDIDO        PIC 9(03).
  87.               03 WS-PV-COD-CLI        PIC 9(03).
  88.               03 WS-PV-NOME-CLI       PIC X(25).
  89.               03 WS-PV-RG-CLI         PIC X(15).
  90.               03 WS-PV-TEL-CLI        PIC X(13).
  91.               03 WS-PV-COD-PRODUTO    PIC 9(03).
  92.               03 WS-PV-NOME-PRODUTO   PIC X(25).
  93.               03 WS-PV-PRECO-PRODUTO  PIC 9(06)V99.
  94.               03 WS-PV-QTD            PIC 9(03).
  95.               03 WS-PV-VALOR-TOTAL    PIC 9(09)V99.
  96.  
  97.        PROCEDURE DIVISION.
  98.         MAIN-PROCEDURE SECTION.
  99.            PERFORM UNTIL WS-OPC EQUALS '0'
  100.                DISPLAY "SELECIONE A OPCAO"
  101.                DISPLAY "1 - CADASTRO E CLIENTES"
  102.                DISPLAY "2 - CADASTRO DE PRODUTOS"
  103.                DISPLAY "3 - CADASTRO DE PEDIDO DE VENDAS"
  104.                DISPLAY "0 - SAIR"
  105.  
  106.                ACCEPT WS-OPC
  107.  
  108.                EVALUATE WS-OPC
  109.                    WHEN 1
  110.                        PERFORM MENU-CLIENTE
  111.                    WHEN 2
  112.                        PERFORM MENU-PRODUTO
  113.                    WHEN 3
  114.                        PERFORM MENU-PEDIDO
  115.                END-EVALUATE
  116.            END-PERFORM.
  117.            PERFORM FINALIZAR.
  118.       **************************************************************************
  119.         MENU SECTION.
  120.           MENU-CLIENTE.
  121.             INITIALISE WS-OPC
  122.             MOVE 'Z' TO WS-OPC
  123.             PERFORM UNTIL WS-OPC EQUALS 'S' OR WS-OPC EQUALS 's'
  124.                DISPLAY "SELECIONE A OPCAO"
  125.                DISPLAY "I - INCLUSAO DE DADOS DOS CLIENTES"
  126.                DISPLAY "A - ALTERACAO DE DADOS DOS CLIENTES"
  127.                DISPLAY "C - CONSULTA DE DADOS DOS CLIENTES"
  128.                DISPLAY "E - EXCLUSAO DE DADOS DOS CLIENTES"
  129.                DISPLAY "L - LISTAR OS CLIENTES"
  130.                DISPLAY "S - SAIR"
  131.  
  132.                ACCEPT WS-OPC
  133.  
  134.                EVALUATE WS-OPC
  135.                    WHEN 'I'
  136.                        PERFORM CADASTRAR-CLIENTE
  137.                    WHEN 'A'
  138.                        PERFORM ATUALIZAR-CLIENTE
  139.                    WHEN 'C'
  140.                        PERFORM BUSCAR-CLIENTE
  141.                    WHEN 'E'
  142.                        PERFORM APAGAR-CLIENTE
  143.                    WHEN 'L'
  144.                        PERFORM LISTAR-CLIENTES
  145.                END-EVALUATE
  146.             END-PERFORM.
  147.           MENU-PRODUTO.
  148.             INITIALISE WS-OPC
  149.             MOVE 'Z' TO WS-OPC
  150.             PERFORM UNTIL WS-OPC EQUALS 'S' OR WS-OPC EQUALS 's'
  151.                DISPLAY "SELECIONE A OPCAO"
  152.                DISPLAY "I - INCLUSAO DE DADOS DOS PRODUTOS"
  153.                DISPLAY "A - ALTERACAO DE DADOS DOS PRODUTOS"
  154.                DISPLAY "C - CONSULTA DE DADOS DOS PRODUTOS"
  155.                DISPLAY "E - EXCLUSAO DE DADOS DOS PRODUTOS"
  156.                DISPLAY "L - LISTAR OS PRODUTOS"
  157.                DISPLAY "S - SAIR"
  158.  
  159.                ACCEPT WS-OPC
  160.  
  161.                EVALUATE WS-OPC
  162.                    WHEN 'I'
  163.                        PERFORM CADASTRAR-PRODUTO
  164.                    WHEN 'A'
  165.                        PERFORM ATUALIZAR-PRODUTO
  166.                    WHEN 'C'
  167.                        PERFORM BUSCAR-PRODUTO
  168.                    WHEN 'E'
  169.                        PERFORM APAGAR-PRODUTO
  170.                    WHEN 'L'
  171.                        PERFORM LISTAR-PRODUTO
  172.                END-EVALUATE
  173.             END-PERFORM.
  174.           MENU-PEDIDO.
  175.             INITIALISE WS-OPC
  176.             MOVE 'Z' TO WS-OPC
  177.             PERFORM UNTIL WS-OPC EQUALS 'S' OR WS-OPC EQUALS 's'
  178.                DISPLAY "SELECIONE A OPCAO"
  179.                DISPLAY "I - INCLUSAO DE DADOS DOS PEDIDOS"
  180.                DISPLAY "A - ALTERACAO DE DADOS DOS PEDIDOS"
  181.                DISPLAY "C - CONSULTA DE DADOS DOS PEDIDOS"
  182.                DISPLAY "E - EXCLUSAO DE DADOS DOS PEDIDOS"
  183.                DISPLAY "L - LISTAR OS PEDIDOS"
  184.                DISPLAY "S - SAIR"
  185.  
  186.                ACCEPT WS-OPC
  187.  
  188.                EVALUATE WS-OPC
  189.                    WHEN 'I'
  190.                        PERFORM CADASTRAR-PEDIDO
  191.                    WHEN 'A'
  192.                        PERFORM ATUALIZAR-PEDIDO
  193.                    WHEN 'C'
  194.                        PERFORM BUSCAR-PEDIDO
  195.                    WHEN 'E'
  196.                        PERFORM APAGAR-PEDIDO
  197.                    WHEN 'L'
  198.                        PERFORM LISTAR-PEDIDO
  199.                END-EVALUATE
  200.             END-PERFORM.
  201.       ***************************************************************************
  202.         CLIENTE SECTION.
  203.         OBTER-DADOS-CLI SECTION.
  204.            OBTER-COD-CLI.
  205.                DISPLAY "DIGITE O CODIGO DO CLIENTE"
  206.                ACCEPT WS-COD-CLIENTE.
  207.            OBTER-NOME-CLI.
  208.                DISPLAY "DIGITE O NOME DO CLIENTE"
  209.                ACCEPT WS-NOME-CLIENTE.
  210.            OBTER-RG-CLI.
  211.                DISPLAY "DIGITE O RG DO CLIENTE"
  212.                ACCEPT WS-RG-CLIENTE.
  213.            OBTER-FONE-CLI.
  214.                DISPLAY "DIGITE O TELEFONE DO CLIENTE"
  215.                ACCEPT WS-TEL-CLIENTE.
  216.            ABRIR-ARQUIVO.
  217.                SET WS-FSCLI TO 0
  218.                SET WS-EOF-CLI TO 0
  219.                OPEN I-O CLIENTES
  220.                IF WS-FSCLI EQUAL 35 THEN
  221.                    OPEN OUTPUT CLIENTES
  222.                END-IF.
  223.  
  224.         PROCEDIMENTOSC SECTION.
  225.           CADASTRAR-CLIENTE.
  226.                DISPLAY "--========= CADASTRO DE CLIENTES ============--"
  227.                PERFORM ABRIR-ARQUIVO
  228.  
  229.                IF WS-FSCLI EQUALS ZEROS
  230.                    PERFORM OBTER-COD-CLI
  231.                    PERFORM OBTER-NOME-CLI
  232.                    PERFORM OBTER-RG-CLI
  233.                    PERFORM OBTER-FONE-CLI
  234.  
  235.                    MOVE WS-COD-CLIENTE TO COD-CLIENTE
  236.                    MOVE WS-NOME-CLIENTE TO NOME-CLIENTE
  237.                    MOVE WS-RG-CLIENTE TO RG-CLIENTE
  238.                    MOVE WS-TEL-CLIENTE TO TEL-CLIENTE
  239.  
  240.                    WRITE REG-CLIENTE
  241.  
  242.                    IF WS-FSCLI EQUALS 22 THEN
  243.                        DISPLAY "UM CLIENTE JA FOI REGISTRADO COM ESSE "
  244.       -                            "CODIGO"
  245.                    ELSE
  246.                        IF WS-FSCLI NOT EQUALS 0 THEN
  247.                            DISPLAY "UM ERRO DE ARQUIVO " WS-FSCLI
  248.       -                                " OCORREU"
  249.                        ELSE
  250.                            DISPLAY "O CLIENTE FOI REGISTRADO !"
  251.                        END-IF
  252.                    END-IF
  253.                END-IF.
  254.                CLOSE CLIENTES.
  255.           LISTAR-CLIENTES.
  256.                DISPLAY "--========= LISTA DE CLIENTES ============--"
  257.                DISPLAY "COD   " "NOME                     "
  258.                                " RG" "              TELEFONE"
  259.                DISPLAY " "
  260.                PERFORM ABRIR-ARQUIVO
  261.  
  262.                IF WS-FSCLI EQUALS ZEROS THEN
  263.                    PERFORM UNTIL WS-EOF-CLI EQUALS 1
  264.                        READ CLIENTES INTO WS-CLIENTE
  265.                            AT END
  266.                                MOVE 1 TO WS-EOF-CLI
  267.                            NOT AT END
  268.                             DISPLAY WS-COD-CLIENTE "   " WS-NOME-CLIENTE
  269.                                    " "WS-RG-CLIENTE " "WS-TEL-CLIENTE
  270.                        END-READ
  271.                    END-PERFORM
  272.                END-IF
  273.                CLOSE CLIENTES.
  274.  
  275.           BUSCAR-CLIENTE.
  276.                DISPLAY "--========= BUSCAR CLIENTE ============--"
  277.                DISPLAY "DIGITE O CODIGO DO CLIENTE"
  278.                ACCEPT WS-COD-CLIENTE
  279.                DISPLAY " "
  280.  
  281.                MOVE WS-COD-CLIENTE TO COD-CLIENTE
  282.                PERFORM ABRIR-ARQUIVO
  283.                IF WS-FSCLI EQUALS ZEROS THEN
  284.                    READ CLIENTES INTO WS-CLIENTE
  285.                        KEY IS COD-CLIENTE
  286.                            INVALID KEY
  287.                                DISPLAY "CODIGO DO CLIENTE INVALIDO"
  288.                            NOT INVALID KEY
  289.                                DISPLAY "COD   " "NOME                  "
  290.                                "    RG" "              TELEFONE"
  291.                             DISPLAY WS-COD-CLIENTE "   " WS-NOME-CLIENTE
  292.                                    " "WS-RG-CLIENTE " "WS-TEL-CLIENTE
  293.                    END-READ
  294.                END-IF.
  295.                CLOSE CLIENTES.
  296.  
  297.           ATUALIZAR-CLIENTE.
  298.                DISPLAY "--========= ATUALIZAR CLIENTE ============--"
  299.                DISPLAY "DIGITE O CODIGO DO CLIENTE"
  300.                ACCEPT WS-COD-CLIENTE
  301.                DISPLAY " "
  302.  
  303.                MOVE WS-COD-CLIENTE TO COD-CLIENTE
  304.                PERFORM ABRIR-ARQUIVO
  305.                IF WS-FSCLI EQUALS ZEROS THEN
  306.                    READ CLIENTES INTO WS-CLIENTE
  307.                        KEY IS COD-CLIENTE
  308.                            INVALID KEY
  309.                                DISPLAY "CODIGO DO CLIENTE INVALIDO"
  310.                            NOT INVALID KEY
  311.                                DISPLAY "COD   " "NOME                  "
  312.                                "    RG" "              TELEFONE"
  313.                             DISPLAY WS-COD-CLIENTE "   " WS-NOME-CLIENTE
  314.                                    " "WS-RG-CLIENTE " "WS-TEL-CLIENTE
  315.                    END-READ
  316.                    DISPLAY " "
  317.                    DISPLAY "DESEJA EDITAR AS INFORMACOES ? (S/N)"
  318.                    ACCEPT WS-OPC
  319.  
  320.                    IF WS-OPC NOT EQUAL 'N' OR WS-OPC NOT EQUAL 'n'
  321.                        PERFORM OBTER-NOME-CLI
  322.                        PERFORM OBTER-RG-CLI
  323.                        PERFORM OBTER-FONE-CLI
  324.  
  325.                        MOVE WS-NOME-CLIENTE TO NOME-CLIENTE
  326.                        MOVE WS-RG-CLIENTE TO RG-CLIENTE
  327.                        MOVE WS-TEL-CLIENTE TO TEL-CLIENTE
  328.  
  329.                        REWRITE REG-CLIENTE
  330.                    END-IF
  331.                END-IF.
  332.                CLOSE CLIENTES.
  333.           APAGAR-CLIENTE.
  334.            DISPLAY "--========= APAGAR CLIENTE ============--"
  335.            DISPLAY "DIGITE O CODIGO DO CLIENTE"
  336.            ACCEPT WS-COD-CLIENTE
  337.            DISPLAY " "
  338.  
  339.            MOVE WS-COD-CLIENTE TO COD-CLIENTE
  340.            PERFORM ABRIR-ARQUIVO
  341.            IF WS-FSCLI EQUALS ZEROS THEN
  342.                READ CLIENTES INTO WS-CLIENTE
  343.                    KEY IS COD-CLIENTE
  344.                        INVALID KEY
  345.                            DISPLAY "CODIGO DO CLIENTE INVALIDO"
  346.                        NOT INVALID KEY
  347.                            DISPLAY "COD   " "NOME                  "
  348.                            "    RG" "              TELEFONE"
  349.                            DISPLAY WS-COD-CLIENTE "   " WS-NOME-CLIENTE
  350.                                " "WS-RG-CLIENTE " "WS-TEL-CLIENTE
  351.                END-READ
  352.                DISPLAY " "
  353.                DISPLAY "DESEJA APAGAR AS INFORMACOES ? (S/N)"
  354.                ACCEPT WS-OPC
  355.  
  356.                IF WS-OPC NOT EQUAL 'N' OR WS-OPC NOT EQUAL 'n'
  357.                    DELETE CLIENTES RECORD
  358.                        INVALID KEY DISPLAY 'CODIGO INVALIDO'
  359.                        NOT INVALID KEY DISPLAY 'CLIENTE EXCLUIDO!'
  360.                    END-DELETE
  361.                END-IF
  362.            END-IF.
  363.            CLOSE CLIENTES.
  364.       *******************************************************************
  365.         PRODUTO SECTION.
  366.           OBTER-DADOS-PROD SECTION.
  367.            OBTER-CODIGO-PROD.
  368.                DISPLAY "DIGITE O CODIGO DO PRODUTO"
  369.                ACCEPT WS-COD-PRODUTO.
  370.            OBTER-NOME-PROD.
  371.                DISPLAY "DIGITE O NOME DO PRODUTO"
  372.                ACCEPT WS-NOME-PRODUTO.
  373.            OBTER-PRECO-PROD.
  374.                DISPLAY "DIGITE O VALOR DO PRODUTO"
  375.                ACCEPT WS-PRECO-PRODUTO.
  376.            ABRIR-ARQUIVO-PROD.
  377.                SET WS-FSPROD TO 0
  378.                SET WS-EOF-PROD TO 0
  379.                OPEN I-O PRODUTOS
  380.                IF WS-FSPROD EQUAL 35 THEN
  381.                    OPEN OUTPUT PRODUTOS
  382.                END-IF.
  383.  
  384.         PROCEDIMENTOSP SECTION.
  385.           CADASTRAR-PRODUTO.
  386.               DISPLAY "--========= CADASTRO DE PRODUTOS ============--"
  387.                PERFORM ABRIR-ARQUIVO-PROD
  388.  
  389.                IF WS-FSPROD EQUALS ZEROS
  390.                    PERFORM OBTER-CODIGO-PROD
  391.                    PERFORM OBTER-NOME-PROD
  392.                    PERFORM OBTER-PRECO-PROD
  393.  
  394.  
  395.                    MOVE WS-COD-PRODUTO TO COD-PRODUTO
  396.                    MOVE WS-NOME-PRODUTO TO NOME-PRODUTO
  397.                    MOVE WS-PRECO-PRODUTO TO PRECO-PRODUTO
  398.  
  399.                    WRITE REG-PRODUTO
  400.  
  401.                    IF WS-FSCLI EQUALS 22 THEN
  402.                        DISPLAY "UM PRODUTO JA FOI REGISTRADO COM ESSE "
  403.       -                            "CODIGO"
  404.                    ELSE
  405.                        IF WS-FSCLI NOT EQUALS 0 THEN
  406.                            DISPLAY "UM ERRO DE ARQUIVO " WS-FSCLI
  407.       -                                " OCORREU"
  408.                        ELSE
  409.                            DISPLAY "O PRODUTO FOI REGISTRADO !"
  410.                        END-IF
  411.                    END-IF
  412.                END-IF.
  413.                CLOSE PRODUTOS.
  414.           LISTAR-PRODUTO.
  415.               DISPLAY "--========= LISTA DE PRODUTOS ============--"
  416.                DISPLAY "COD   " "NOME " "                     VALOR"
  417.                DISPLAY " "
  418.                PERFORM ABRIR-ARQUIVO-PROD
  419.  
  420.                IF WS-FSPROD EQUALS ZEROS THEN
  421.                    PERFORM UNTIL WS-EOF-PROD EQUALS 1
  422.                        READ PRODUTOS INTO WS-PRODUTO
  423.                            AT END
  424.                                MOVE 1 TO WS-EOF-PROD
  425.                            NOT AT END
  426.                             DISPLAY WS-COD-PRODUTO "   " WS-NOME-PRODUTO
  427.                                    " "WS-PRECO-PRODUTO " "
  428.                        END-READ
  429.                    END-PERFORM
  430.                END-IF
  431.                CLOSE PRODUTOS.
  432.           BUSCAR-PRODUTO.
  433.                DISPLAY "--========= BUSCAR PRODUTO ============--"
  434.                DISPLAY "DIGITE O CODIGO DO PRODUTO"
  435.                ACCEPT WS-COD-PRODUTO
  436.                DISPLAY " "
  437.  
  438.                MOVE WS-COD-PRODUTO TO COD-PRODUTO
  439.                PERFORM ABRIR-ARQUIVO-PROD
  440.                IF WS-FSPROD EQUALS ZEROS THEN
  441.                    READ PRODUTOS INTO WS-PRODUTO
  442.                        KEY IS COD-PRODUTO
  443.                            INVALID KEY
  444.                                DISPLAY "CODIGO DO PRODUTO INVALIDO"
  445.                            NOT INVALID KEY
  446.                    DISPLAY "COD " "NOME " "                     VALOR"
  447.                             DISPLAY WS-COD-PRODUTO " "  WS-NOME-PRODUTO
  448.                                    " " WS-PRECO-PRODUTO
  449.                    END-READ
  450.                END-IF.
  451.                CLOSE PRODUTOS.
  452.           ATUALIZAR-PRODUTO.
  453.                DISPLAY "--========= ATUALIZAR PRODUTO ============--"
  454.                DISPLAY "DIGITE O CODIGO DO PRODUTO"
  455.                ACCEPT WS-COD-PRODUTO
  456.                DISPLAY " "
  457.  
  458.                MOVE WS-COD-PRODUTO TO COD-PRODUTO
  459.                PERFORM ABRIR-ARQUIVO-PROD
  460.                IF WS-FSPROD EQUALS ZEROS THEN
  461.                    READ PRODUTOS INTO WS-PRODUTO
  462.                        KEY IS COD-PRODUTO
  463.                            INVALID KEY
  464.                                DISPLAY "CODIGO DO PRODUTO INVALIDO"
  465.                            NOT INVALID KEY
  466.                     DISPLAY "COD " "NOME " "                     VALOR"
  467.                             DISPLAY WS-COD-PRODUTO " "  WS-NOME-PRODUTO
  468.                                    " " WS-PRECO-PRODUTO
  469.                    END-READ
  470.                    DISPLAY " "
  471.                    DISPLAY "DESEJA EDITAR AS INFORMACOES ? (S/N)"
  472.                    ACCEPT WS-OPC
  473.  
  474.                    IF WS-OPC NOT EQUAL 'N' OR WS-OPC NOT EQUAL 'n'
  475.                        PERFORM OBTER-NOME-PROD
  476.                        PERFORM OBTER-PRECO-PROD
  477.  
  478.                        MOVE WS-NOME-PRODUTO TO NOME-PRODUTO
  479.                        MOVE WS-PRECO-PRODUTO TO PRECO-PRODUTO
  480.  
  481.  
  482.                        REWRITE REG-PRODUTO
  483.                    END-IF
  484.                END-IF.
  485.                CLOSE PRODUTOS.
  486.           APAGAR-PRODUTO.
  487.            DISPLAY "--========= APAGAR PRODUTO ============--"
  488.            DISPLAY "DIGITE O CODIGO DO PRODUTO"
  489.            ACCEPT WS-COD-PRODUTO
  490.            DISPLAY " "
  491.  
  492.            MOVE WS-COD-PRODUTO TO COD-PRODUTO
  493.            PERFORM ABRIR-ARQUIVO-PROD
  494.            IF WS-FSPROD EQUALS ZEROS THEN
  495.                READ PRODUTOS INTO WS-PRODUTO
  496.                    KEY IS COD-PRODUTO
  497.                        INVALID KEY
  498.                            DISPLAY "CODIGO DO PRODUTO INVALIDO"
  499.                        NOT INVALID KEY
  500.                      DISPLAY "COD " "NOME " "                     VALOR"
  501.                             DISPLAY WS-COD-PRODUTO " "  WS-NOME-PRODUTO
  502.                                    " " WS-PRECO-PRODUTO
  503.                END-READ
  504.                DISPLAY " "
  505.                DISPLAY "DESEJA APAGAR AS INFORMACOES ? (S/N)"
  506.                ACCEPT WS-OPC
  507.  
  508.                IF WS-OPC NOT EQUAL 'N' OR WS-OPC NOT EQUAL 'n'
  509.                    DELETE PRODUTOS RECORD
  510.                        INVALID KEY DISPLAY 'CODIGO INVALIDO'
  511.                        NOT INVALID KEY DISPLAY 'PRODUTO EXCLUIDO!'
  512.                    END-DELETE
  513.                END-IF
  514.            END-IF.
  515.            CLOSE PRODUTOS.
  516.       *******************************************************************
  517.         PEDIDO SECTION.
  518.           OBTER-DADOS-PED SECTION.
  519.            OBTER-COD-PEDIDO.
  520.                DISPLAY "DIGITE O CODIGO DO PEDIDO"
  521.                ACCEPT WS-COD-PEDIDO.
  522.            OBTER-QTD-PEDIDO.
  523.                DISPLAY "DIGITE A QTD DE PRODUTOS DO PEDIDO"
  524.                ACCEPT WS-PV-QTD.
  525.            OBTER-VALORTOTAL-PEDIDO.
  526.                DISPLAY "DIGITE O VALOR TOTAL DO PEDIDO"
  527.                ACCEPT WS-PV-VALOR-TOTAL.
  528.            ABRIR-ARQUIVO-PED.
  529.                SET WS-FSPV TO 0
  530.                SET WS-EOF-PV TO 0
  531.                OPEN I-O PEDIDOS
  532.                IF WS-FSPV EQUAL 35 THEN
  533.                    OPEN OUTPUT PEDIDOS
  534.                END-IF.
  535.  
  536.         PROCEDIMENTOSPE SECTION.
  537.           CADASTRAR-PEDIDO.
  538.                DISPLAY "--========= CADASTRO DE PEDIDOS ============--"
  539.                PERFORM ABRIR-ARQUIVO-PED
  540.  
  541.                IF WS-FSPV EQUALS ZEROS
  542.                    PERFORM OBTER-COD-PEDIDO
  543.                    MOVE WS-COD-PEDIDO TO COD-PEDIDO
  544.  
  545.                    PERFORM OBTER-COD-CLI
  546.                    MOVE WS-COD-CLIENTE TO PV-COD-CLI
  547.  
  548.                    PERFORM OBTER-NOME-CLI
  549.                    MOVE WS-NOME-CLIENTE TO PV-NOME-CLI
  550.  
  551.                    PERFORM OBTER-RG-CLI
  552.                    MOVE WS-RG-CLIENTE TO PV-RG-CLI
  553.  
  554.                    PERFORM OBTER-FONE-CLI
  555.                    MOVE WS-TEL-CLIENTE TO PV-TEL-CLI
  556.  
  557.                    OBTER-CODIGO-PROD
  558.                    MOVE WS-COD-PRODUTO TO PV-COD-PRODUTO
  559.  
  560.                    OBTER-NOME-PROD
  561.                    MOVE WS-NOME-PRODUTO TO PV-NOME-PRODUTO
  562.  
  563.                    OBTER-PRECO-PROD
  564.                    MOVE WS-PRECO-PRODUTO TO PV-PRECO-PRODUTO
  565.  
  566.                    OBTER-QTD-PEDIDO
  567.                    MOVE WS-PV-QTD TO PV-QTD
  568.  
  569.                    OBTER-VALORTOTAL-PEDIDO
  570.                    MOVE WS-PV-VALOR-TOTAL TO PV-VALOR-TOTAL
  571.  
  572.                    WRITE REG-PEDIDO
  573.  
  574.                    IF WS-FSPV EQUALS 22 THEN
  575.                        DISPLAY "UM PEDIDO JA FOI REGISTRADO COM ESSE "
  576.       -                            "CODIGO"
  577.                    ELSE
  578.                        IF WS-FSCLI NOT EQUALS 0 THEN
  579.                            DISPLAY "UM ERRO DE ARQUIVO " WS-FSCLI
  580.       -                                " OCORREU"
  581.                        ELSE
  582.                            DISPLAY "O PEDIDO FOI REGISTRADO !"
  583.                        END-IF
  584.                    END-IF
  585.                END-IF.
  586.                CLOSE PRODUTOS.
  587.           LISTAR-PEDIDO.
  588.  
  589.           BUSCAR-PEDIDO.
  590.  
  591.           ATUALIZAR-PEDIDO.
  592.  
  593.           APAGAR-PEDIDO.
  594.  
  595.           FINALIZAR.
  596.             STOP RUN.
  597.        END PROGRAM CRUDPESSOAS.
  598.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement