Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --create or replace procedure DTRP_IMP_DAG AS
- -- Created on 17/08/2023 by GERACINO
- arquivo_ler UTL_FILE.File_Type;
- arquivo_nome VARCHAR(100) := NULL;
- linha VARCHAR2(1000) := NULL;
- vSEQFORNECEDOR consinco.maf_fornecedor.seqfornecedor%TYPE;
- vNROEMPRESA consinco.ge_empresa.nroempresa%TYPE;
- vSEQPRODUTO consinco.map_produto.seqproduto%TYPE;
- vQTDEMBALAGEM NUMBER(12,6);
- vQTDSOLICITADA NUMBER(12,3);
- vPOSICAO NUMBER(3):= NULL;
- vcountln NUMBER(3):= 0;
- eof BOOLEAN :=FALSE; -- flag indica fim do arquivo
- vsaNomesArquivos SimpleStringArrayType := SimpleStringArrayType();
- BEGIN
- JSC5_ArrayArquivo('BALANCA01', vsaNomesArquivos);
- FOR i IN 1 .. vsaNomesArquivos.COUNT
- LOOP
- arquivo_nome := vsaNomesArquivos(i);
- arquivo_ler := UTL_FILE.Fopen('BALANCA01',arquivo_nome, 'r');
- WHILE NOT(eof) LOOP
- BEGIN
- UTL_FILE.Get_Line(arquivo_ler, linha);
- vcountln := vcountln +1;
- IF vcountln = 1 THEN
- --<Manipulac?o da linha lida>
- --<CAMPO 1>
- vPOSICAO := INSTR(linha,';');
- vSEQFORNECEDOR := SUBSTR(linha,1,vPOSICAO - 1);
- linha := SUBSTR(linha,vPOSICAO +1);
- --<CAMPO 2>
- vPOSICAO := INSTR(linha,';');
- vNROEMPRESA := SUBSTR(linha,1,vPOSICAO - 1);
- linha := SUBSTR(linha,vPOSICAO +1);
- --<CAMPO 3>
- vPOSICAO := INSTR(linha,';');
- vSEQPRODUTO := SUBSTR(linha,1,vPOSICAO - 1);
- linha := SUBSTR(linha,vPOSICAO +1);
- --<CAMPO 4>
- vPOSICAO := INSTR(linha,';');
- vQTDEMBALAGEM := SUBSTR(linha,1,vPOSICAO - 1);
- linha := SUBSTR(linha,vPOSICAO +1);
- --<CAMPO 5>
- vPOSICAO := INSTR(linha,';');
- vQTDSOLICITADA := SUBSTR(linha,1,vPOSICAO - 1);
- linha := SUBSTR(linha,vPOSICAO +1);
- -- Insert na tabela de integracão
- INSERT INTO EDI_PEDIDOSUPRIM (SEQEDIPEDIDOSUPRIM, NROPEDFORNECEDOR, CNPJEMPRESA,
- DIGCNPJEMPRESA, COMPRADOR, CNPJFORNECEDOR, DIGCNPJFORNECEDOR, TIPPEDIDOSUPRIM,
- DTAEMISSAO, DTARECEBTO,CONDICAOFRETE, TXVENDOR )
- SELECT S_SEQEDIPEDIDOSUPRIM.NEXTVAL, NULL ,P.DIGCGC,P.DIGCGC,'DATERRA',G.NROCGCCPF,G.DIGCGCCPF,'C',TRUNC(SYSDATE), TRUNC(SYSDATE)+30,NULL, NULL, 'C' , 0
- FROM GE_PESSOA G, GE_EMPRESA P, MRL_PRODUTOEMPRESA E, TMP_EDI_PEDIDOS T
- WHERE E.NROEMPRESA = P.NROEMPRESA
- AND T.SEQFORNECEDOR = G.SEQPESSOA
- AND T.NROEMPRESA = E.NROEMPRESA
- AND T.SEQPRODUTO = E.SEQPRODUTO
- AND G.SEQPESSOA = 1
- COMMIT;
- ELSE
- --<CAMPO 1>
- vPOSICAO := INSTR(linha,';');
- vNROPEDFORNECEDOR := SUBSTR(linha,1,vPOSICAO - 1);
- linha := SUBSTR(linha,vPOSICAO +1);
- --<CAMPO 2>
- vPOSICAO := INSTR(linha,';');
- vCNPJEMPRESA := SUBSTR(linha,1,vPOSICAO - 1);
- linha := SUBSTR(linha,vPOSICAO +1);
- --<CAMPO 3>
- vPOSICAO := INSTR(linha,';');
- vDIGCNPJEMPRESA := SUBSTR(linha,1,vPOSICAO - 1);
- linha := SUBSTR(linha,vPOSICAO +1);
- --<CAMPO 4>
- vPOSICAO := INSTR(linha,';');
- vCODPRODUTO := SUBSTR(linha,1,vPOSICAO - 1);
- linha := SUBSTR(linha,vPOSICAO +1);
- --<CAMPO 5>
- vPOSICAO := INSTR(linha,';');
- vQTDSOLICITADA := SUBSTR(linha,1,vPOSICAO - 1);
- linha := SUBSTR(linha,vPOSICAO +1);
- --<CAMPO 6>
- vPOSICAO := INSTR(linha,';');
- vQTDEMBALAGEM := SUBSTR(linha,1,vPOSICAO - 1);
- linha := SUBSTR(linha,vPOSICAO +1);
- --DBMS_OUTPUT.put_line(vQTDEMBALAGEM);
- -- Insert na tabela de integrac?o itens
- INSERT INTO EDI_PEDIDOSUPRIMITEM (seqedipedidosuprimitem, seqedipedidosuprim,nropedfornecedor,
- cnpjempresa, digcnpjempresa,codproduto, qtdsolicitada,qtdembalagem)
- SELECT s_seqedipedidosuprimitem.NEXTVAL,S_SEQEDIPEDIDOSUPRIM.CURRVAL,vNROPEDFORNECEDOR,
- vCNPJEMPRESA,vDIGCNPJEMPRESA,vCODPRODUTO,vQTDSOLICITADA,vQTDEMBALAGEM
- FROM dual;
- --DBMS_OUTPUT.put_line(vCODPRODUTO);
- END IF;
- -- TRATAMENTO DE EXCEC?O
- EXCEPTION
- -- QUANDO NENHUMA LINHA FOR ENCONTRADA, ENT?O DIGO QUE E O FIM DO ARQUIVO.
- WHEN NO_DATA_FOUND THEN
- eof := TRUE;
- END;
- END LOOP;
- UTL_FILE.Fclose(arquivo_ler);
- UTL_FILE.fremove('BALANCA01',arquivo_nome);
- COMMIT;
- END LOOP;
- EXCEPTION
- WHEN NO_DATA_FOUND THEN
- UTL_FILE.Fclose(arquivo_ler);
- WHEN UTL_FILE.INVALID_PATH THEN
- DBMS_OUTPUT.put_line('Diretorio invalido.');
- UTL_FILE.Fclose(arquivo_ler);
- WHEN OTHERS THEN
- DBMS_OUTPUT.put_line ('Problemas na leitura do arquivo.')
- ;
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement