Advertisement
geracino

sp_imp_edi_cidade

Mar 11th, 2024 (edited)
1,051
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 5.00 KB | Software | 0 0
  1. --create or replace procedure DTRP_IMP_DAG AS
  2. -- Created on 17/08/2023 by GERACINO
  3.  
  4. arquivo_ler UTL_FILE.File_Type;
  5. arquivo_nome        VARCHAR(100)   := NULL;
  6. linha               VARCHAR2(1000) := NULL;
  7. vSEQFORNECEDOR      consinco.maf_fornecedor.seqfornecedor%TYPE;
  8. vNROEMPRESA         consinco.ge_empresa.nroempresa%TYPE;
  9. vSEQPRODUTO         consinco.map_produto.seqproduto%TYPE;
  10. vQTDEMBALAGEM       NUMBER(12,6);
  11. vQTDSOLICITADA      NUMBER(12,3);
  12. vPOSICAO            NUMBER(3):= NULL;
  13. vcountln            NUMBER(3):= 0;
  14. eof                 BOOLEAN :=FALSE; -- flag indica fim do arquivo
  15. vsaNomesArquivos SimpleStringArrayType := SimpleStringArrayType();
  16.  
  17. BEGIN
  18.   JSC5_ArrayArquivo('BALANCA01', vsaNomesArquivos);
  19.  
  20.   FOR i IN 1 .. vsaNomesArquivos.COUNT
  21.    
  22.   LOOP
  23.       arquivo_nome := vsaNomesArquivos(i);
  24.       arquivo_ler  := UTL_FILE.Fopen('BALANCA01',arquivo_nome, 'r');
  25.   WHILE NOT(eof) LOOP
  26.   BEGIN
  27.  
  28.         UTL_FILE.Get_Line(arquivo_ler, linha);
  29.         vcountln := vcountln +1;
  30.         IF vcountln = 1 THEN
  31.            --<Manipulac?o da linha lida>
  32.            --<CAMPO 1>
  33.            vPOSICAO := INSTR(linha,';');
  34.            vSEQFORNECEDOR  := SUBSTR(linha,1,vPOSICAO - 1);
  35.            linha := SUBSTR(linha,vPOSICAO +1);
  36.            --<CAMPO 2>
  37.            vPOSICAO := INSTR(linha,';');
  38.            vNROEMPRESA := SUBSTR(linha,1,vPOSICAO - 1);
  39.            linha := SUBSTR(linha,vPOSICAO +1);
  40.            --<CAMPO 3>
  41.            vPOSICAO := INSTR(linha,';');
  42.            vSEQPRODUTO := SUBSTR(linha,1,vPOSICAO - 1);
  43.            linha := SUBSTR(linha,vPOSICAO +1);
  44.            --<CAMPO 4>
  45.            vPOSICAO := INSTR(linha,';');
  46.            vQTDEMBALAGEM := SUBSTR(linha,1,vPOSICAO - 1);
  47.            linha := SUBSTR(linha,vPOSICAO +1);
  48.            --<CAMPO 5>
  49.            vPOSICAO := INSTR(linha,';');
  50.            vQTDSOLICITADA := SUBSTR(linha,1,vPOSICAO - 1);
  51.            linha := SUBSTR(linha,vPOSICAO +1);
  52.  
  53.            -- Insert na tabela de integracão
  54.            INSERT INTO EDI_PEDIDOSUPRIM  (SEQEDIPEDIDOSUPRIM,   NROPEDFORNECEDOR,   CNPJEMPRESA,
  55.            DIGCNPJEMPRESA,   COMPRADOR,   CNPJFORNECEDOR,   DIGCNPJFORNECEDOR,   TIPPEDIDOSUPRIM,
  56.            DTAEMISSAO,   DTARECEBTO,CONDICAOFRETE, TXVENDOR )
  57.            SELECT    S_SEQEDIPEDIDOSUPRIM.NEXTVAL, NULL ,P.DIGCGC,P.DIGCGC,'DATERRA',G.NROCGCCPF,G.DIGCGCCPF,'C',TRUNC(SYSDATE), TRUNC(SYSDATE)+30,NULL, NULL, 'C' , 0
  58.             FROM GE_PESSOA G, GE_EMPRESA P, MRL_PRODUTOEMPRESA E, TMP_EDI_PEDIDOS T
  59.             WHERE E.NROEMPRESA = P.NROEMPRESA
  60.             AND   T.SEQFORNECEDOR = G.SEQPESSOA
  61.             AND   T.NROEMPRESA = E.NROEMPRESA
  62.             AND   T.SEQPRODUTO = E.SEQPRODUTO
  63.             AND   G.SEQPESSOA = 1
  64.  
  65.            COMMIT;
  66.  
  67.            ELSE
  68.  
  69.           --<CAMPO 1>
  70.            vPOSICAO := INSTR(linha,';');
  71.            vNROPEDFORNECEDOR := SUBSTR(linha,1,vPOSICAO - 1);
  72.            linha := SUBSTR(linha,vPOSICAO +1);
  73.            --<CAMPO 2>
  74.            vPOSICAO := INSTR(linha,';');
  75.            vCNPJEMPRESA := SUBSTR(linha,1,vPOSICAO - 1);
  76.            linha := SUBSTR(linha,vPOSICAO +1);
  77.            --<CAMPO 3>
  78.            vPOSICAO := INSTR(linha,';');
  79.            vDIGCNPJEMPRESA := SUBSTR(linha,1,vPOSICAO - 1);
  80.            linha := SUBSTR(linha,vPOSICAO +1);
  81.            --<CAMPO 4>
  82.            vPOSICAO := INSTR(linha,';');
  83.            vCODPRODUTO := SUBSTR(linha,1,vPOSICAO - 1);
  84.            linha := SUBSTR(linha,vPOSICAO +1);
  85.            --<CAMPO 5>
  86.            vPOSICAO := INSTR(linha,';');
  87.            vQTDSOLICITADA := SUBSTR(linha,1,vPOSICAO - 1);
  88.            linha := SUBSTR(linha,vPOSICAO +1);
  89.            --<CAMPO 6>
  90.            vPOSICAO := INSTR(linha,';');
  91.            vQTDEMBALAGEM := SUBSTR(linha,1,vPOSICAO - 1);
  92.            linha := SUBSTR(linha,vPOSICAO +1);
  93.            --DBMS_OUTPUT.put_line(vQTDEMBALAGEM);
  94.  
  95.  
  96.            -- Insert na tabela de integrac?o itens
  97.            INSERT INTO EDI_PEDIDOSUPRIMITEM (seqedipedidosuprimitem, seqedipedidosuprim,nropedfornecedor,
  98.                   cnpjempresa, digcnpjempresa,codproduto, qtdsolicitada,qtdembalagem)
  99.            SELECT s_seqedipedidosuprimitem.NEXTVAL,S_SEQEDIPEDIDOSUPRIM.CURRVAL,vNROPEDFORNECEDOR,
  100.                   vCNPJEMPRESA,vDIGCNPJEMPRESA,vCODPRODUTO,vQTDSOLICITADA,vQTDEMBALAGEM
  101.                   FROM dual;
  102.  
  103.  
  104.            --DBMS_OUTPUT.put_line(vCODPRODUTO);
  105.  
  106.         END IF;
  107.         -- TRATAMENTO DE EXCEC?O
  108.         EXCEPTION
  109.         -- QUANDO NENHUMA LINHA FOR ENCONTRADA, ENT?O DIGO QUE E O FIM DO ARQUIVO.
  110.          WHEN NO_DATA_FOUND THEN
  111.              eof := TRUE;
  112.         END;
  113.  
  114.   END LOOP;
  115.   UTL_FILE.Fclose(arquivo_ler);
  116.   UTL_FILE.fremove('BALANCA01',arquivo_nome);
  117. COMMIT;
  118. END LOOP;
  119.  EXCEPTION
  120.             WHEN NO_DATA_FOUND THEN
  121.             UTL_FILE.Fclose(arquivo_ler);
  122.             WHEN UTL_FILE.INVALID_PATH THEN
  123.             DBMS_OUTPUT.put_line('Diretorio invalido.');
  124.             UTL_FILE.Fclose(arquivo_ler);
  125.             WHEN OTHERS THEN
  126.             DBMS_OUTPUT.put_line ('Problemas na leitura do arquivo.')
  127.            ;
  128.  
  129.  
  130.  
  131. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement